【问题标题】:How to export table in text document (ODT or DOCX) to EMF format via api如何通过api将文本文档(ODT或DOCX)中的表格导出为EMF格式
【发布时间】:2019-04-01 07:12:41
【问题描述】:
【问题讨论】:
标签:
api
libreoffice
openoffice.org
【解决方案1】:
没有现成的 LibreOffice API 可以做到这一点,但取决于你如何决定细节,我认为这仍然是可行的。几个提示:
如果要导出表格,首先需要遍历文档的表格容器,XTextTablesSupplier 允许你这样做。
然后您可能希望将每个表格复制到单独的 Writer 文档中,因此当您导出 Writer 页面时,只有表格显示在那里,没有其他内容。 (请记住,表格可能跨越多个页面)。使用XTextCopy 接口可以在文档之间复制内容。
一旦你有一个只包含一个表的 Writer 文档,你需要遍历文档的所有页面:打开的文档的组件可以转换为 XRenderable,然后 getRendererCount() 告诉你页数。 (你也可以使用XPageCursor,但是下面无论如何都需要以前的接口。)
最后,一旦你有了单个文档的单个页面,就可以使用XRenderer 接口的render() 方法将页面实际呈现为矢量格式。
我建议您考虑是否真的想在 LibreOffice 本身内完成所有这些工作;如果您将步骤 3. 和 4. 替换为导出为 PDF,然后您自己处理 PDF 到 EMF 的转换,您可以简化您的工作。