gpt4 book ai didi

java - 使用 Openoffice Java API (UNO API) 将整个 ODT (Openoffice Writer) 文档部分复制到其他文档

转载 作者:搜寻专家 更新时间:2023-11-01 03:45:01 25 4
gpt4 key购买 nike

我需要使用 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

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

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

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

关于java - 使用 Openoffice Java API (UNO API) 将整个 ODT (Openoffice Writer) 文档部分复制到其他文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3514603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com