Comment puis-je créer un document Word en utilisant Python?

j'aimerais créer un document Word en utilisant Python, cependant, je veux réutiliser autant que possible mon code de création de document existant. J'utilise actuellement XSLT pour générer un fichier HTML que je par programmation convertir vers un fichier PDF. Cependant, mon client demande maintenant que le même document disponible dans Word (.doc) format.

jusqu'à présent, je n'ai pas eu beaucoup de chance de trouver des solutions à ce problème. Est-ce que quelqu'un est au courant de l'existence d'une bibliothèque libre (ou *gulfp* une solution exclusive) qui pourrait aider à résoudre ce problème?

NOTE: toutes les solutions possibles doivent fonctionner sous Linux. Je crois que cela élimine pywin32.

36
demandé sur Bobrovsky 2009-06-24 00:59:08

5 réponses

quelques façons de créer des documents Word en utilisant Python:

EDIT:

com étant hors de question, je propose ce qui suit (inspiré de la réponse de @kcrumley):

utilisation de la bibliothèque UNO pour automatiser Open Office à partir de python, ouvrir le fichier HTML dans OOWriter, puis Enregistrer sous .doc.

EDIT2:

Il y a maintenant un Python pur python-docx projet qui a l'air sympa (je n'ai pas utilisé).

36
répondu codeape 2014-10-22 20:50:09

j'ai essayé python-docx avec succes, il vous permet de faire et d'éditer docx au sein de Python

21
répondu mbk 2011-11-08 19:54:11

1) Si vous voulez simplement coller une autre étape à la fin de votre pipeline actuel, il existe plusieurs options pour convertir des fichiers PDF en fichiers Word. Je n'ai pas essayé 123PDFConverter, mais les éditeurs CNET le recommandent (même lien); il a un essai libre; et il soutient l'automatisation. Comme pour tout convertisseur de fichiers tiers, votre kilométrage peut varier, en fonction de la complexité de vos fichiers PDF et de la qualité du logiciel.

2) S'appuyer sur les codeape's Com automation suggestion, si vous com automatisez Word, vous pouvez ouvrir votre fichier HTML actuel dans Word, et appeler la commande "Enregistrer sous", Pour l'enregistrer en tant que fichier DOC.

2
répondu Kevin Crumley 2009-06-23 21:52:43

j'ai eu à faire quelque chose de similaire avec python. C'est loin plus de travail manuel que je ne le voulais, mais les documents créés avec pyRTF faisaient planter Word et OpenOffice et je n'avais pas la motivation pour essayer de le comprendre.

j'ai trouvé le plus simple (mais pas idéal) de créer un modèle de document Word avec les styles que je veux. Puis Mon Python crée un fichier HTML dont <p> les styles sont indiqués après le mot styles. Puis j'ouvre le fichier HTML en Word et ouvrez le modèle en Word. J'ai découpé et collé tout le texte du fichier HTML dans le modèle, et Word re-formate tout selon les styles que j'avais mis en place précédemment. Ça marche pour le dossier occasionnel dans ma situation. Ça pourrait ne pas marcher pour votre situation. FYI.

2
répondu 2009-07-16 04:14:37

Pouvez-vous écrire est que le WordML des fichiers XML et la fermeture-éclair dans le .format docx? Tout ce que votre client aurait besoin est le filtre de mot 2007 s'ils ne sont pas déjà sur Office 2007.

Il y a de nombreux exemples.

vous pouvez aussi charger XML directement dans Word, à partir de 2003, ou donc j'ai été informé.

0
répondu lavinio 2009-06-23 21:02:02