Как создать документ 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.