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.
5 réponses
quelques façons de créer des documents Word en utilisant Python:
- utiliser COM automation pour créer un document en utilisant le modèle D'objet MS Word (en utilisant
pywin32
). http://python.net/crew/pirx/spam7/ - Automatiser OpenOffice à l'aide de Python: http://wiki.services.openoffice.org/wiki/Python
- si le format rtf est correct, utilisez la bibliothèque PyRTF: http://pyrtf.sourceforge.net/
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é).
j'ai essayé python-docx avec succes, il vous permet de faire et d'éditer docx au sein de Python
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.
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.
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é.