Вопрос по xml, python – Как я могу создать документ Word, используя Python?
===========================================================================

Я хотел бы создать документ Word с использованием Python, однако я хочу повторно использовать как можно большую часть моего существующего кода для создания документов. В настоящее время я использую XSLT для создания файла HTML, который я[программно конвертировать](http://www.xhtml2pdf.com/) в файл PDF. Однако мой клиент теперь запрашивает, чтобы тот же документ был доступен в формате Word (.doc).

До сих пор мне не очень повезло найти какие-либо решения этой проблемы. Кто-нибудь знает о библиотеке с открытым исходным кодом (или * gulp * проприетарное решение), которая может помочь решить эту проблему?

ПРИМЕЧАНИЕ. Все возможные решения должны работать в Linux. Я считаю, что это устраняет pywin32.

[питон-DOCX](https://github.com/mikemaccana/python-docx) с успехом, он позволяет вам создавать и редактировать документы в Python



far больше ручной работы, чем я хочу, но документы, созданные с помощью pyRTF, приводили к сбою Word и OpenOffice, и у меня не было мотивации, чтобы попытаться это выяснить.

Мне показалось, что проще всего (но не идеально) создать шаблон документа Word с нужными мне стилями. Затем мой Python создает файл HTML, чей`<p>` стили помечены после стилей Word. Затем я открываю файл HTML в Word и открываю шаблон в Word. Я вырезал и вставлял весь текст из файла HTML в шаблон, и Word переформатировал его в соответствии со стилями, которые я установил ранее. Это работает для случайного файла в моей ситуации. Это может не сработать для вашей ситуации. FYI.



Use COM automation to create a document using the MS Word object model (using `pywin32`). <http://python.net/crew/pirx/spam7/>
Automate OpenOffice using Python: <http://wiki.services.openoffice.org/wiki/Python>
If rtf format is OK, use the PyRTF library: <http://pyrtf.sourceforge.net/>
РЕДАКТИРОВАТЬ:

Поскольку о COM не может быть и речи, я предлагаю следующее (на основе ответа @ kcrumley):

Используя библиотеку UNO для автоматизации Open Office из python, откройте файл HTML в OOWriter, затем сохраните как .doc.

EDIT2:

Там теперь чистый Питон[проект python-docx](https://python-docx.readthedocs.org/en/latest/) это выглядит красиво (я не использовал его).



ат .docx? Все, что нужно вашему клиенту, - это фильтр Word 2007, если он еще не установлен в Office 2007.

Есть много примеров там.

Вы также можете загрузить XML непосредственно в Word, начиная с 2003 года, или[так мне сказали](http://www.tkachenko.com/blog/archives/000024.html).



1) Если вы хотите просто сделать еще один шаг в конце вашего текущего конвейера, есть несколько вариантов конвертации файлов PDF в файлы Word.[123PDFConverter](https://download.cnet.com/123PDFConverter-PDF-to-Word-Converter/3000-10743_4-10544297.html), но редакторы CNET рекомендуют это (та же ссылка); у него есть бесплатная пробная версия; и это поддерживает автоматизацию. Как и для любого стороннего конвертера файлов, ваш пробег может варьироваться в зависимости от сложности ваших PDF-файлов и от того, насколько хороша программа на самом деле.

2) Основываясь на предложении Codeape по автоматизации COM, если вы COM автоматизируете Word, вы можете открыть свой фактический HTML-файл в Word и вызвать «Сохранить как». команда, чтобы сохранить его как файл DOC.