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

时间:2019-04-01 07:12:41

标签: api libreoffice openoffice.org

我有一个带有一些表格的文本文档(ODT或DOCX)。我使用LibreOffice API(Java)打开此文档。

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

1 个答案:

答案 0 :(得分:0)

尚没有可立即使用的LibreOffice API可以做到这一点,但是根据您对细节的决定,我认为这仍然可行。提示:

  1. 如果要导出表,首先需要遍历文档的表容器,XTextTablesSupplier允许您执行此操作。

  2. 然后,您可能希望将每个表复制到单独的Writer文档中,因此,在导出Writer页面时,仅该表显示在那里,而没有其他内容。 (请记住,表可能跨越多个页面)。使用XTextCopy界面可以在文档之间复制内容。

  3. 一旦您的Writer文档仅包含一个表,就需要遍历该文档的所有页面:可以将打开的文档的组件转换为XRenderable,然后转换为{{1} }告诉您有关页数的信息。 (您也可以使用getRendererCount(),但是下面仍然需要以前的界面。)

  4. 最后,只有一个文档的单个页面之后,就可以使用XPageCursor界面的XRenderer方法将页面实际呈现为矢量格式。

我建议您考虑是否真的要在LibreOffice本身中做所有这些事情;如果您将步骤3和4.替换为导出到PDF,然后自己处理PDF到EMF的转换,则可以简化工作。