DOCX nach PDF in C# konvertieren

DocxToPdfConverter rendert ein Word-Dokument mit einem einzigen Aufruf als PDF, ohne Word, ohne LibreOffice und ohne Office-Interop. Es ist durchgehend verwalteter Code und läuft daher in einem Linux-Container und auf arm64 genauso wie auf einem Windows-Desktop.

using DocToolkit;

byte[] docx = File.ReadAllBytes("input.docx");
byte[] pdf = DocxToPdfConverter.Convert(docx);
File.WriteAllBytes("output.pdf", pdf);

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 das PDF als byte[] zurück; ConvertFile(inputPath, outputPath) arbeitet von Pfad zu Pfad.
  • Ein verschlüsseltes DOCX wird mit einer DocumentConversionException abgelehnt; entfernen Sie zuerst das Passwort mit DocxEditor.Unprotect.
  • Nicht-lateinischer Text hängt von den Schriftarten ab, die der Host-Rechner hat. Übergeben Sie genügend Schriftarten in einem PdfFontOptions an Convert(docx, fonts): Diese ersetzen die Ersatzschriften des Hosts, statt sie zu ergänzen, daher sind zu wenige schlechter als keine.
  • Remote-Bilder im Dokument werden nicht abgerufen: Die Konvertierung gelingt ohne sie.

Installation

dotnet add package Ank.DocToolkit

NuGetDokumentationGitHub