2009-06-23 27 views
35

Me gustaría crear un documento de Word utilizando Python, sin embargo, quiero volver a utilizar tanto de mi código existente de creación de documentos como sea posible. Actualmente estoy usando un XSLT para generar un archivo HTML que I programatically convert en un archivo PDF. Sin embargo, mi cliente ahora está solicitando que el mismo documento esté disponible en formato Word (.doc).¿Cómo puedo crear un documento de Word utilizando Python?

Hasta ahora, no he tenido mucha suerte en encontrar alguna solución a este problema. ¿Alguien conoce una biblioteca de código abierto (o * gulp * una solución patentada) que pueda ayudar a resolver este problema?

NOTA: Todas las soluciones posibles deben ejecutarse en Linux. Creo que esto elimina a pywin32.

Respuesta

36

un par de maneras que usted puede crear documentos de Word utilizando Python:

EDIT:

Desde COM está fuera de la cuestión, propongo lo siguiente (inspirado en la respuesta de @kcrumley):

Utilizando la biblioteca UNO para automatizar Open Office desde python, abra el archivo HTML en OOWriter y luego guárdelo como .doc.

Edit2:

Ahora hay un Python puro python-docx project que parece agradable (no he usado).

+0

Guau, aciertas 2 de las mismas 3 ideas que iba a decir (COM y RTF). Gracias por salvarme el tiempo. :) –

+8

+1 por sugerir .RTF en lugar de .DOC – Hardwareguy

+0

Desafortunadamente, se requiere .doc. Sin RTF – Huuuze

0

¿Se puede escribir como los archivos XML de WordML y comprimirlos en el formato .docx? Todo lo que su cliente necesitaría es el filtro de Word 2007 si ya no están en Office 2007.

Existen muchos ejemplos.

También puede cargar XML directamente en Word, comenzando en 2003 o so I've been told.

+0

Desafortunadamente, esta opción no es lo ideal. Por lo que puedo decir, necesitaría convertir mis datos en WordML para mantener el formato del documento. – Huuuze

2

1) Si desea simplemente dar un paso más al final de su canalización actual, ahora hay varias opciones para convertir archivos PDF a archivos de Word. No he intentado 123PDFConverter, pero los Editores CNET lo recomiendan (mismo enlace); tiene una prueba gratis; y es compatible con la automatización. Al igual que con cualquier convertidor de archivos de terceros, su millaje puede variar, dependiendo de cuán complicados son sus archivos PDF, y cuán bueno es realmente el software.

2) Basándose en la sugerencia de automatización COM de codeape, si COM automatiza Word, puede abrir su archivo HTML real en Word y llamar al comando "Guardar como" para guardarlo como un archivo DOC.

2

He tenido que hacer algo similar con Python también. Es ahora más trabajo manual de lo que quiero, pero los documentos creados con pyRTF estaban causando la falla de Word y OpenOffice y no tenía la motivación para tratar de resolverlo.

Lo encontré más simple (pero no ideal) para crear una plantilla de documento de Word con los estilos que quiero.Entonces mi Python crea un archivo HTML cuyos estilos <p> están etiquetados después de los estilos de Word. Luego abro el archivo HTML en Word y abro la plantilla en Word. Corto y pego todo el texto del archivo HTML en la plantilla, y Word lo vuelve a formatear de acuerdo con los estilos que había configurado previamente. Eso funciona para el archivo ocasional en mi situación. Puede que no funcione para tu situación. FYI.

20

me trataron python-docx con éxito, que le permite crear y editar docx dentro de Python

+8

Para obtener más atención cuando responda una pregunta, puede ser una buena idea incluir algún código de ejemplo, incluso si solo está vinculado desde ese enlace que proporcionó. –

+0

@mbk No pude encontrar tutorial para crear un documento con esta biblioteca – Volatil3

+1

@ Volatil3 Hay un ejemplo en la página, aquí hay un [enlace] directo (https://github.com/mikemaccana/python-docx/blob/ master/example-makedocument.py) – mbk

Cuestiones relacionadas