Отформатированный вывод в OpenOffice / Microsoft Word с Python

Я работаю над проектом (на Python), который нуждается в отформатированном, редактируемом выходе. Поскольку конечный пользователь не будет технически профессиональным, выход должен быть в текстовом редакторе, редактируемом формате. Форматирование является сложным (пункты пули, абзацы, полужирный шрифт и т. Д.).

Есть ли способ создать такой отчет с помощью Python? Я чувствую, что должен быть способ сделать это, используя шаблоны Microsoft Word / OpenOffice и Python, но я не могу найти что-либо достаточно продвинутое, чтобы получить хорошее форматирование. Какие-либо предложения?

7 Solutions collect form web for “Отформатированный вывод в OpenOffice / Microsoft Word с Python”

Немного известный и слегка злой факт: если вы создаете HTML-файл и вставляете на него расширение .doc, Word откроет его как документ Word, и большинство пользователей не станут более мудрыми.

Кроме того, может быть, очень технический человек скажет, что это маленький файл Word! 🙂

«Форматирование сложное (пункты пули, абзацы, жирный шрифт и т. Д.),

Используйте RST .

Это тривиально, потому что это простой текст.

Это тривиально для редактирования, так как это простой текст с несколькими дополнительными символами для предоставления структурной информации.

Он хорошо форматирует, используя набор инструментов .

Для этого используйте модуль Python Docx – 100% Python, таблицы, изображения, свойства документа, заголовки, абзацы и т. Д.

Я знаю, что есть сторонник для docutils . Вы можете создать свой вывод как reStructuredText и передать его в odtwriter или посмотреть, какой odtwriter использует на сервере для создания ODT и использовать его.

(Я бы, вероятно, пошел с генерацией первого вывода, а затем взломал odtwriter для вывода нужного материала (и внесения исправлений обратно в проект), потому что это, вероятно, намного проще, если вы пытаетесь напрямую передать свои данные ODT.)

Я использовал xlwt для создания документов Excel с использованием python, но мне не нужно было писать текстовые файлы. Я нашел этот пакет, OOoPy , но я его не использовал.

Также вы можете попробовать вывести html-файлы и открыть их пользователям в Word.

Вы можете использовать QTextDocument, QTextCursor и QTextDocumentWriter в PyQt4 . Простой пример, чтобы показать, как писать в файл odt:

>>>from pyqt4 import QtGui # Create a document object >>>doc = QtGui.QTextDocument() # Create a cursor pointing to the beginning of the document >>>cursor = QtGui.QTextCursor(doc) # Insert some text >>>cursor.insertText('Hello world') # Create a writer to save the document >>>writer = QtGui.QTextDocumentWriter() >>>writer.supportedDocumentFormats() [PyQt4.QtCore.QByteArray(b'HTML'), PyQt4.QtCore.QByteArray(b'ODF'), PyQt4.QtCore.QByteArray(b'plaintext')] >>>odf_format = writer.supportedDocumentFormats()[1] >>>writer.setFormat(odf_format) >>>writer.setFileName('hello_world.odt') >>>writer.write(doc) # Return True if successful True 

QTextCursor также может вставлять таблицы, кадры, блоки, изображения. Дополнительная информация: http://qt-project.org/doc/qt-4.8/qtextcursor.html

В качестве бонуса вы также можете распечатать файл PDF с помощью QPrinter.

Я думаю, что OpenOffice имеет некоторые привязки Python – вы должны иметь возможность писать макросы OO в Python.

Но вместо этого я бы использовал HTML – Word и OO.org неплохо редактировали его, и вы можете легко написать его с Python (хотя Word сохраняет много беспорядка, что может усложнить синтаксический анализ его приложением Python).

Python - лучший язык программирования в мире.