如何以编程方式修改 Open/Libreoffice odt 文档?
Posted
技术标签:
【中文标题】如何以编程方式修改 Open/Libreoffice odt 文档?【英文标题】:How to programatically modify Open/Libre Office odt document? 【发布时间】:2014-01-10 08:43:34 【问题描述】:我想在我的应用程序中使用 OO/LO PDF 生成功能。为此,我需要能够从我的代码中修改以前生成的 odt 模板。修改将只是简单的文本替换(甚至不需要正则表达式)。
OO's developer's guide 不包含任何可以让我做我需要做的事情的示例或教程。
LO's developer's guide 也没有用。它包含多个 java 示例,但没有有用的 C++ 代码。
对于这两种 API,都提供了 doxygen 文档 - 但没有一般性介绍,浏览整个代码库和逆向工程类并发现如何使用它们太乏味和麻烦。
总结一下:如何使用 C 或 C++ API 修改 odt 文件?
【问题讨论】:
你看examples了吗? @devnull 是吗?是的,我进行了研究并探索了整个指南 - 实际上是两个指南。有 C++ 的示例,尽管它们对我的用处几乎为零。 ODT 文档只不过是一个 ZIP 文件,其中主要包含 XML 文件。解压,编辑 XML,重新打包,就完成了。 @BartFriederichs 我已经想到并正在考虑它,尽管我更愿意以正确和正式的方式来做。文本可能会在内部被某些 xml 标签以某种方式扭曲,或者格式会改变并且我的代码变得无效......我想避免它。 【参考方案1】:我最终提取了存档,处理和编辑了 xml,然后再次打包。
效果很好。
【讨论】:
【参考方案2】:Qt 默认有 ODT 文件处理程序
http://doc.qt.io/qt-5/qtextdocumentwriter.html
【讨论】:
以上是关于如何以编程方式修改 Open/Libreoffice odt 文档?的主要内容,如果未能解决你的问题,请参考以下文章
如何以编程方式修改 Open/Libreoffice odt 文档?