Convertir DOCX en HTML en C#

DocxToHtmlConverter transforme un document Word en HTML et conserve sa structure : les titres restent des titres, les tableaux restent des tableaux. Les images voyagent dans le HTML sous forme d'URI data:, si bien que le résultat est autonome.

using DocToolkit;

byte[] docx = File.ReadAllBytes("input.docx");
string html = DocxToHtmlConverter.Convert(docx);
File.WriteAllText("output.html", html);

Ce qu'il faut

  • Aucun navigateur, headless ou non.
  • Aucune installation d'Office, et pas de LibreOffice.
  • Aucun fichier natif : uniquement du code managé.
  • Aucun réseau à l'exécution, sauf si vous le demandez.

Bon à savoir

  • Synchrone : Convert prend le .docx sous forme de byte[] et renvoie une string.
  • Le résultat est un document HTML complet, avec <html>, <head> et <body>, pas un fragment. Pour l'intégrer dans une page, extrayez le body avec un parseur HTML.
  • Les images du document sont incorporées sous forme d'URI data:, si bien que rien dans le résultat ne pointe vers un fichier inexistant.
  • ConvertWithReport liste aussi ce que le HTML n'a pas pu porter. Un DOCX ordinaire signale au moins une entrée, SectionLayoutFlattened, car la géométrie des pages est exportée sans ses données de section.

Installation

dotnet add package Ank.DocToolkit

NuGetDocumentationGitHub