Convertir DOC en DOCX en C#

DocToDocxConverter lit un fichier .doc de Word 97-2003 et écrit un paquet .docx moderne. Le texte, les tableaux et la mise en forme des caractères, comme le gras, sont conservés intacts.

using DocToolkit;

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

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 : DocToDocxConverter.Convert prend le .doc sous forme de byte[] et renvoie le .docx sous forme de byte[].
  • Il refuse un .doc contenant des images, des dessins ou des champs de formulaire qu'un .docx ne peut pas porter, plutôt que de les supprimer sans rien dire. Définissez LegacyDocOptions.AllowContentLoss pour accepter la perte délibérément.
  • ConvertWithReport renvoie les mêmes octets et une liste de ce que l'import n'a pas pu transférer.
  • Import uniquement : il lit le .doc et n'en écrit jamais.

Installation

dotnet add package Ank.DocToolkit

NuGetDocumentationGitHub