2012-04-12 3 views
3

Мне нужно создать совместимый с 2003 файл doc из python без использования внешней программы, такой как OpenOffice или встроенный язык, например java, используя Jasper, но я не нашел способ сделать это. Создание docx довольно просто и не допускает проблемы, но файл doc - это еще одна история. В качестве альтернативного решения я попытался сгенерировать rtf-файл, но несовместимость Unicode (там есть библиотека, решая это), и отсутствие функций не позволяет мне идти дальше и удовлетворять мои потребности. Какие-либо советы или решения? Заранее спасибо!Создать файл слов (.doc) с помощью python

+0

Можете ли вы использовать Word? –

+2

2003 год был 9 лет назад. Пришло время для людей принять формат docx. MS даже делает надстройку доступной для версий офиса, которые ее не поддерживают. – Marcin

ответ

1

Поскольку это двоичный формат, у вас есть несколько вариантов. JODReports или Docmosis могут быть как сидеть поверх OpenOffice, так и генерировать реальные файлы формата doc. Вы должны иметь возможность запускать либо из Python, либо, возможно, подключаться к Java, если это повышает вашу производительность.

+0

Это было лучшее решение. Например, я закончил разговор с нашим клиентом, чтобы объяснить .docx было лучшим решением Он даже установил IE8 и прекратил использовать IE7 ... TT – castledom04

4

A google for python generate word document приводит к множеству хороших результатов. Кажется, что py docx или win32com.client являются полезными библиотеками.

Для чтения файлов docx с Word 2003 you have to install a plugin.

+0

py docx создает файлы docx, которые не являются (прямыми) совместимыми со словом 2003. –

+2

Вы также можете прочитать файлы docx в Word 2003, я добавил ссылку в ответ. –

+0

Проект является мультиплатформенным, он должен сгенерировать файл doc из linux или windows, поэтому pywin32 не является вариантом. Кажется, что это не правильная библиотека для создания файлов doc ... Установка плагина кажется лучшим вариантом ... sigh ... – castledom04

0

Сначала вы можете сгенерировать HTML-код, затем автоматизировать pandoc, чтобы преобразовать его в ODT. Затем, используя мост PyUNO, преобразуйте его в документ. Это довольно длинная цепочка, но я не нашел лучшего способа сделать это. Также посмотрите на http://wiki.services.openoffice.org/wiki/Python.

Спецификация файлов .doc, на мой взгляд, довольно беспорядочна и не будет легко сгенерировать ее непосредственно с помощью python. Хотя некоторые попытки python libs для написания файлов doc были предприняты, они находятся на очень ранней стадии и могут не обслуживать вас ...

+0

В проекте я не могу использовать pyuno/openoffice, файл должен быть сгенерирован из кода python. Я реализовал это решение с отличными результатами, но потребность в openoffice, установленном в системе, не допускается ... :( – castledom04