Как создать документ Word с помощью Python?

Я хотел бы создать документ Word с помощью Python, однако я хочу использовать как можно больше моего существующего кода для создания документа. В настоящее время я использую XSLT для генерации HTML файла, который я программно конвертирует в PDF файл. Тем не менее, мой клиент теперь просит предоставить тот же документ в формате Word (.doc).

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

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

Ответ 1

Пара способов создания документов Word с помощью Python:

EDIT:

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

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

EDIT2:

Теперь существует чистый проект python python-docx, который выглядит хорошо (я его не использовал).

Ответ 2

Я попробовал python-docx с помощью succes, он позволяет создавать и редактировать docx внутри Python

Ответ 3

1) Если вы хотите просто добавить еще один шаг в конец вашего текущего конвейера, теперь есть несколько вариантов преобразования файлов PDF в файлы Word. Я не пробовал 123PDFConverter, но редакторы CNET рекомендуют его (та же ссылка); он имеет бесплатную пробную версию; и он поддерживает автоматизацию. Как и в любом стороннем конвертере файлов, ваш пробег может варьироваться в зависимости от сложности ваших PDF файлов и того, насколько хороши программное обеспечение на самом деле.

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

Ответ 4

Мне тоже нужно было сделать что-то подобное с python. Это гораздо более ручная работа, чем я хочу, но документы, созданные с помощью pyRTF, приводили к сбою Word и OpenOffice, и у меня не было мотивации, чтобы попытаться понять это.

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

Ответ 5

Можете ли вы написать как XML файлы WordML и закрепить его в формате .docx? Весь ваш клиент будет нужен фильтр Word 2007, если они уже не находятся в Office 2007.

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

Вы также можете загрузить XML непосредственно в Word, начиная с 2003 года, или поэтому мне сказали.

Ответ 6

Простой способ!

Запишите содержимое HTML в файл и сохраните с расширением .doc, и теперь вы можете открыть его в MS Word и Libre office Writer.