【问题标题】:Formatted output in OpenOffice/Microsoft Word with Python使用 Python 在 OpenOffice/Microsoft Word 中格式化输出
【发布时间】:2010-10-29 14:06:32
【问题描述】:

我正在开发一个需要格式化、可编辑输出的项目(使用 Python)。由于最终用户不会精通技术,因此输出需要采用文字处理器可编辑格式。格式很复杂(要点、段落、粗体等)。

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

【问题讨论】:

    标签: python formatting ms-word ms-office openoffice.org


    【解决方案1】:

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

    (我可能会生成第一个输出,然后破解 odtwriter 以输出我想要的东西(并将修复贡献回项目),因为这可能比尝试将你的东西直接渲染到 ODT 要容易得多.)

    【讨论】:

      【解决方案2】:

      我已经使用 xlwt 使用 python 创建 Excel 文档,但我还不需要编写 word 文件。我找到了这个包,OOoPy,但我没用过。

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

      【讨论】:

        【解决方案3】:

        我认为 OpenOffice 有一些 Python 绑定 - 您应该能够用 Python 编写 OO 宏。

        但我会改用 HTML - Word 和 OO.org 非常擅长编辑它,您可以轻松地用 Python 编写它(尽管 Word 节省了很多麻烦,这可能会使您的 Python 应用程序解析它变得复杂)。

        【讨论】:

          【解决方案4】:

          " 格式复杂(要点、段落、粗体等),"

          使用RST

          生成起来很简单,因为它是纯文本。

          编辑起来很简单,因为它是带有几个额外字符的纯文本来提供结构信息。

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

          【讨论】:

            【解决方案5】:

            一个鲜为人知且略显邪恶的事实:如果您创建一个 HTML 文件,并在其上添加 .doc 扩展名,Word 会将其作为 Word 文档打开,而大多数用户都不会更聪明。

            除非可能有技术含量很高的人会说,我这是一个小的 Word 文件! :)

            【讨论】:

            • 然后就变成普通的Word文件了。
            【解决方案6】:

            为此使用 Python Docx 模块 - 100% Python、表格、图像、文档属性、标题、段落等。

            【讨论】:

              【解决方案7】:

              您可以在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 文件。

              【讨论】:

                猜你喜欢
                • 2011-07-30
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2011-10-04
                • 1970-01-01
                相关资源
                最近更新 更多