如何通过api将文本文档(ODT或DOCX)中的表导出为EMF格式

问题描述 投票:0回答:1

我有一些文本文档(ODT或DOCX)和一些表格。我使用LibreOffice API(在Java中)打开此文档。

我想将表导出为EMF文件。有任何想法吗?附: LibreOffice(OpenOffice)API的官方文档很差。在这篇非常有趣的文章http://fivedots.coe.psu.ac.th/~ad/jlop/中找不到此信息。

api libreoffice openoffice.org
1个回答
0
投票

没有现成的LibreOffice API可以做到这一点,但根据你如何决定细节,我认为这仍然是可行的。几个提示:

  1. 如果要导出表,首先需要遍历文档的表容器,XTextTablesSupplier允许您执行此操作。
  2. 然后,您可能希望将每个表复制到单独的Writer文档中,因此当您导出Writer页面时,只有表格显示在那里,没有其他内容。 (请记住,表格可能跨越多个页面)。使用XTextCopy界面可以在文档之间复制内容。
  3. 一旦你有一个只包含一个表的Writer文档,你需要遍历文档的所有页面:打开的文档的组件可以被转换为XRenderable,然后getRendererCount()会告诉你页面的数量。 (您也可以使用XPageCursor,但无论如何都需要以前的界面。)
  4. 最后,一旦您拥有单个文档的单个页面,就可以使用XRenderer接口的render()方法将页面实际呈现为矢量格式。

我建议你考虑一下你是否真的想在LibreOffice中做这一切;如果您将步骤3和4替换为导出为PDF,则可以简化您的工作,然后自己处理PDF到EMF转换。

© www.soinside.com 2019 - 2024. All rights reserved.