2010-08-18 47 views
4

我需要使用OpenOffice Java API复制文档部分并将其粘贴到另一个文档部分。到目前为止,我已经设法复制源文档部分的文本并将其粘贴到目标文档的部分上(请参阅下面的示例)。使用OpenOffice Java API(UNO API)将整个ODT(OpenOffice Writer)文档部分复制到其他文档中

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

我已经用于提取源部分的文本中的代码是:

// 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,但我还没有找到任何方法来复制整个部分。有什么办法可以做到吗?

+0

该OOOForum教程应该帮助:[获取内容并将其传输到另一个文档](http://www.oooforum.org/forum/viewtopic.phtml?t=71000)。 – 2011-03-02 15:51:24

回答

1

我有这个相同的问题。我最终通过创建两个游标来解决问题,一个是我想要复制的内容的开始,另一个是使用内容的结尾,然后将第一个游标的游标选择扩展到第二个。这对第一个游标使用gotoRange方法,传入第二个游标,并使用True来指示它扩展选择。

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

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

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

,如果你想我可以张贴我的代码,但它是用Python编写的。

+1

请发布您的代码。 – hjdm 2013-01-18 12:29:33

相关问题