Как создать документ Word с помощью Python?
Я хотел бы создать документ Word с помощью Python, однако я хочу повторно использовать как можно больше существующего кода создания документа. В настоящее время я использую XSLT для создания HTML-файла, который я программно преобразовать в файл PDF. Однако мой клиент теперь просит, чтобы тот же документ был доступен в Word (.формат doc.
до сих пор мне не удалось найти решения этой проблемы. Кто-нибудь знает о библиотеке с открытым исходным кодом (или * gulp * проприетарное решение), которое может помочь решить эту проблему?
Примечание: все возможные решения должны работать на Linux. Я считаю, что это исключает pywin32.
5 ответов
несколько способов создания документов Word с помощью Python:
- используйте com automation для создания документа с помощью объектной модели MS Word (используя
pywin32
). http://python.net/crew/pirx/spam7/ - автоматизация OpenOffice с помощью Python:http://wiki.services.openoffice.org/wiki/Python
- если формат rtf в порядке, используйте библиотеку PyRTF: http://pyrtf.sourceforge.net/
изменить:
поскольку COM не может быть и речи, я предлагаю следующее (вдохновленный ответом @kcrumley):
используя библиотеку UNO для автоматизации Open Office из python, откройте HTML-файл в OOWriter, а затем сохраните как .доктор.
EDIT2:
теперь есть чистый Python проект python-docx это выглядит хорошо (я не использовал его).
пробовал в Python-docx в С succes, это позволяет создавать и редактировать docx в Python
1) Если вы хотите просто вставить еще один шаг в конец текущего конвейера, теперь есть несколько вариантов для преобразования PDF-файлов в файлы Word. Я не пробовал!--1-->123PDFConverter, но редакторы CNET рекомендуют его (та же ссылка); он имеет бесплатную пробную версию; и он поддерживает автоматизацию. Как и в любом стороннем конвертере файлов, ваш пробег может варьироваться в зависимости от того, насколько сложны ваши PDF-файлы и насколько хорошо программное обеспечение на самом деле.
2) построение на codeape's Com automation suggestion, если вы com automate Word, вы можете открыть свой фактический HTML-файл в Word и вызвать команду "Сохранить как", чтобы сохранить его как файл DOC.
мне пришлось сделать что-то подобное с python. Это далеко больше ручной работы, чем я хочу, но документы, созданные с помощью pyRTF, вызывали сбой Word и OpenOffice, и у меня не было мотивации пытаться понять это.
Я нашел его самым простым (но не идеальным), чтобы создать шаблон документа Word со стилями, которые я хочу. Затем мой Python создает HTML-файл,<p>
стили помечаются после слов стили. Затем я открываю HTML-файл в Word и открыть шаблон в Word. Я вырезаю и вставляю весь текст из HTML-файла в шаблон, а Word переформатирует его в соответствии со стилями, которые я установил ранее. Это работает для случайного файла в моей ситуации. Это может не сработать в вашей ситуации. К ВАШЕМУ СВЕДЕНИЮ.
можете ли вы написать это как файлы WordML XML и zip его в.формат docx? Все, что нужно вашему клиенту, это фильтр Word 2007, если они еще не находятся в Office 2007.
есть много примеров там.
вы также можете загрузить XML непосредственно в Word, начиная с 2003 года, или Я сказал.