Convertir DOCX en PDF en C#
DocxToPdfConverter rend un document Word en PDF en un seul appel, sans Word, sans LibreOffice et sans interop Office. C'est du code managé de bout en bout, il tourne donc de la même façon dans un conteneur Linux et sur arm64 que sur un poste Windows.
using DocToolkit;
byte[] docx = File.ReadAllBytes("input.docx");
byte[] pdf = DocxToPdfConverter.Convert(docx);
File.WriteAllBytes("output.pdf", pdf);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 :
Convertprend le.docxsous forme debyte[]et renvoie le PDF sous forme debyte[];ConvertFile(inputPath, outputPath)va d'un chemin à un autre. - Un DOCX chiffré est refusé avec une
DocumentConversionException; retirez d'abord le mot de passe avecDocxEditor.Unprotect. - Le texte non latin dépend des polices présentes sur la machine hôte. Passez suffisamment de polices dans un
PdfFontOptionsàConvert(docx, fonts): elles remplacent les polices de secours de l'hôte au lieu de s'y ajouter, donc en passer trop peu est pire que de n'en passer aucune. - Les images distantes du document ne sont pas récupérées : la conversion réussit sans elles.