首页 文章

使用Python在OpenOffice / Microsoft Word中格式化输出

提问于
浏览
6

我正在开发一个需要格式化,可编辑输出的项目(在Python中) . 由于最终用户不具备技术熟练程度,因此输出需要采用文字处理器可编辑格式 . 格式很复杂(项目符号,段落,粗体等) .

有没有办法使用Python生成这样的报告?我觉得应该有一种方法可以使用Microsoft Word / OpenOffice模板和Python来做到这一点,但我找不到任何足够高级的东西来获得良好的格式 . 有什么建议?

7 回答

  • 1

    我知道有一个odtwriter for docutils . 您可以将输出生成为reStructuredText并将其提供给odtwriter或查看odtwriter在后端使用的内容以生成ODT并使用它 .

    (我可能会选择生成第一个输出,然后攻击odtwriter输出我想要的东西(并将修复程序返回给项目),因为尝试直接将你的东西渲染到ODT可能要容易得多 . )

  • 0

    我还需要写word文件 . 我找到了这个包,OOoPy,但我还没用过它 .

    您也可以尝试输出html文件并让用户在Word中打开它们 .

  • 3

    一个鲜为人知且有点邪恶的事实:如果你创建一个HTML文件,并在其上粘贴.doc扩展名,Word将把它作为Word文档打开,大多数用户都不会更聪明 .

    除了一个非常技术的人会说,我的这是一个小的Word文件! :)

  • 2

    “格式很复杂(项目符号,段落,粗体等),”

    使用RST .

    生产环境 是微不足道的,因为它是纯文本 .

    编辑是微不足道的,因为它是带有一些额外字符的纯文本来提供结构信息 .

    它使用一堆tools很好地格式化 .

  • 2

    使用Python Docx模块 - 100%Python,表格,图像,文档属性, Headers ,段落等 .

  • 1

    您可以在PyQt4中使用QTextDocument,QTextCursor和QTextDocumentWriter . 一个简单的例子,展示如何写入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

    作为奖励,您还可以使用QPrinter打印到pdf文件 .

  • 1

    我认为OpenOffice有一些Python绑定 - 你应该能够在Python中编写OO宏 .

    但我会使用HTML而不是 - Word和OO.org相当擅长编辑它,你可以轻松地从Python编写它(虽然Word节省了很多混乱,这可能会使你的Python应用程序解析它变得复杂) .

相关问题