加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

使用Openoffice Java API(UNO API)将整个ODT(Openoffice Writer)

发布时间:2020-12-15 02:21:24 所属栏目:Java 来源:网络整理
导读:我需要使用OpenOffice Java API来复制文档部分并将其粘贴到另一个文档部分.到目前为止,我已设法复制源文档部分的文本并将其粘贴到目标文档的部分(请参阅下面的示例). 但是,问题是非文本元素(图形,格式,表格等)不会粘贴到目标文档上. 我用来提取源部分文本的
我需要使用OpenOffice Java API来复制文档部分并将其粘贴到另一个文档部分.到目前为止,我已设法复制源文档部分的文本并将其粘贴到目标文档的部分(请参阅下面的示例).

但是,问题是非文本元素(图形,格式,表格等)不会粘贴到目标文档上.

我用来提取源部分文本的代码是:

// Read source file text
XComponent xComponentSource = this.ooHelper.loadDocument("file://" + fSource);
// Get sections
XTextSectionsSupplier textSectionsSupplierSource = (XTextSectionsSupplier)UnoRuntime.queryInterface(XTextSectionsSupplier.class,xComponentSource);
XNameAccess nameAccessSource = textSectionsSupplierOrigen.getTextSections();
// Get sections by name
XTextSection textSectionSource = (XTextSection)UnoRuntime.queryInterface(XTextSection.class,nameAccessOrigen.getByName("SeccEditable"));
//Get section text
String sectionSource = textSectionSource.getAnchor().getString();

要将文本粘贴到目标部分,选择该部分的代码是相同的,我设置了字符串:

textSectionDest.getAnchor().setString(sectionSource);

我已经阅读了API Javadoc,但我没有找到任何方法来复制整个部分.有什么办法吗?

解决方法

我遇到了同样的问题.我最后通过创建两个游标进行求解,一个在我想要复制的内容的开头,然后在内容的末尾使用另一个,然后将第一个的光标选择扩展到第二个.这在第一个游标上使用gotoRange方法,传入第二个游标,并使用True告诉它扩展选择.

游标示例:
http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_1_1_Editing_Text

然后我创建了一个包含选择的autoText容器,组和元素.使用自动文本条目的applyTo方法将内容插入/粘贴到光标位置.我使用guid作为autoText容器的名称,因此它是唯一的,然后在我完成时删除容器.

自动图文集示例:
http://api.openoffice.org/docs/DevelopersGuide/Text/Text.xhtml#1_3_1_6_Auto_Text

如果你愿意,我可以发布我的代码,但它是用Python编写的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读