簡體   English   中英

使用Openoffice Java API(UNO API)將整個ODT(Openoffice Writer)文檔部分復制到其他文檔

[英]Copy a whole ODT (Openoffice Writer) document section to other document with Openoffice Java API (UNO 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編寫的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM