>>>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
7 回答
我知道有一个odtwriter for docutils . 您可以将输出生成为reStructuredText并将其提供给odtwriter或查看odtwriter在后端使用的内容以生成ODT并使用它 .
(我可能会选择生成第一个输出,然后攻击odtwriter输出我想要的东西(并将修复程序返回给项目),因为尝试直接将你的东西渲染到ODT可能要容易得多 . )
我还需要写word文件 . 我找到了这个包,OOoPy,但我还没用过它 .
您也可以尝试输出html文件并让用户在Word中打开它们 .
一个鲜为人知且有点邪恶的事实:如果你创建一个HTML文件,并在其上粘贴.doc扩展名,Word将把它作为Word文档打开,大多数用户都不会更聪明 .
除了一个非常技术的人会说,我的这是一个小的Word文件! :)
“格式很复杂(项目符号,段落,粗体等),”
使用RST .
生产环境 是微不足道的,因为它是纯文本 .
编辑是微不足道的,因为它是带有一些额外字符的纯文本来提供结构信息 .
它使用一堆tools很好地格式化 .
使用Python Docx模块 - 100%Python,表格,图像,文档属性, Headers ,段落等 .
您可以在PyQt4中使用QTextDocument,QTextCursor和QTextDocumentWriter . 一个简单的例子,展示如何写入odt文件:
QTextCursor还可以插入表格,框架,块,图像 . 更多信息请访问:http://qt-project.org/doc/qt-4.8/qtextcursor.html
作为奖励,您还可以使用QPrinter打印到pdf文件 .
我认为OpenOffice有一些Python绑定 - 你应该能够在Python中编写OO宏 .
但我会使用HTML而不是 - Word和OO.org相当擅长编辑它,你可以轻松地从Python编写它(虽然Word节省了很多混乱,这可能会使你的Python应用程序解析它变得复杂) .