DOCX nach HTML in C# konvertieren

DocxToHtmlConverter wandelt ein Word-Dokument in HTML um und behält seine Struktur: Überschriften bleiben Überschriften, Tabellen bleiben Tabellen. Bilder reisen als data:-URIs im HTML mit, sodass das Ergebnis für sich allein steht.

using DocToolkit;

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

Was es braucht

  • Keinen Browser, weder headless noch sonst.
  • Keine Office-Installation und kein LibreOffice.
  • Keine nativen Dateien: nur verwalteten Code.
  • Kein Netzwerk zur Laufzeit, außer Sie verlangen es.

Gut zu wissen

  • Synchron: Convert nimmt die .docx-Datei als byte[] entgegen und gibt einen string zurück.
  • Das Ergebnis ist ein vollständiges HTML-Dokument mit <html>, <head> und <body>, kein Fragment. Um es in eine Seite einzubetten, lösen Sie den Body mit einem HTML-Parser heraus.
  • Bilder im Dokument werden als data:-URIs eingebettet, sodass nichts in der Ausgabe auf eine Datei verweist, die nicht existiert.
  • ConvertWithReport listet außerdem auf, was das HTML nicht übernehmen konnte. Ein gewöhnliches DOCX meldet mindestens einen Eintrag, SectionLayoutFlattened, weil die Seitengeometrie ohne ihre Abschnittsdaten exportiert wird.

Installation

dotnet add package Ank.DocToolkit

NuGetDokumentationGitHub