Question

J'ai besoin d'un processus automatisé pour créer des fichiers docx de source xhtml. Les fichiers contiennent des images xhtml (éléments de <img>) dont les « src » attributs le point sur une référence externe. Mais les fichiers docx doivent être lisibles sans une connexion réseau, donc je dois trouver un moyen d'intégrer les images directement dans le paquet docx (à savoir, dans le dossier / media).

Jusqu'à présent, je l'ai utilisé la méthode altChunk (tel que décrit par Eric blanc) pour créer le fichier .docx. Je l'avais espéré utiliser le SDK OpenXML pour insérer les parties d'image dans le paquet. Mais pour ce faire que je dois insérer des paragraphes (nœuds de <p>) dans le document. Malheureusement, la partie du document contient rien d'autre qu'une référence à la altChunk (stockés séparément dans le paquet docx). Bien sûr, une fois que le docx est ouvert, modifié et enregistré, la partie altChunk est supprimé et son contenu sont intégrés correctement dans le document.xml. Mais je ne connais aucune façon de le faire programatically, donc cela ne suffit pas.

D'autres options que j'ai pris en compte:

  1. partitionnement du XHTML en segments, séparés entre chaque image, puis en ajoutant chaque altChunk une à la fois, avec la référence de l'image appropriée entre chacun d'eux. (Mais semble possible Ennuyeux)
  2. Insertion des images dans le dossier multimédia, puis trouver moyen d'intégrer WordProcessingML directement dans le xhtml afin que le <img> fait référence au fichier d'image emballé. (Au mieux, douteux) Quelqu'un peut-il penser à une meilleure approche?
Était-ce utile?

La solution

Eh bien, je sorta résolu mon problème: j'ai décidé de convertir le document en MHTML (qui peut contenir des images incorporées directement dans le fichier), puis utilisez le altchunk pour créer le fichier docx final. Cependant, je voulais encore faire un peu de post-traitement sur le fichier (pour insérer des notes de fin dans le document Word), mais comme mentionné ci-dessus, ce n'est pas possible jusqu'à ce que après la altchunk a été transformé en docx, qui ne peut être fait par programmation.

Il me vint à l'esprit que je pouvais contourner le chemin de altchunk tout à fait et il suffit d'utiliser MHTML comme la « passerelle » de xHtml à docx. Je viens transformais la xHtml en MHTML, avec des images intégrées et de fin de document, puis renommé le fichier avec une extension .doc. Le document qui en résulte peut être ouvert directement par Word (et sera converti plus correctement sur la suite sauvegarder). Jusqu'à présent, il fonctionne très bien (mais avec quelques bugs dans la version Mac de Word, ainsi que Word2003).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top