我想在OpenOffice 3.1中获取Writer文档的整个树。我需要收集树中所有元素的数据,而不仅仅是元素。Text
通过加载XTextDocument
和做getText()
将给出XText
元素。更具体地说,使用XEnumerationAccess
fromXText
只会遍历TextRange
.
从 OpenOffice 文档/DevGuide/Text/Iterating_over_Text:
com.sun.star.text.Text 的第二个接口是XEnumerationAccess。文本服务枚举文本中的所有段落并返回支持 com.sun.star.text.Paragraph 的对象。这包括表格,因为作者将表格视为支持 com.sun.star.text.TextTable 服务的特殊段落。
这里有一些额外的文档:
段落的文本部分枚举不提供确实属于该段落的内容,但不与文本流融合在一起。这些可以是文本框架、图形对象、嵌入对象或锚定在段落、字符或作为字符的图形形状。TextPortionType“TextContent”指示是否有内容锚定在字符或作为字符。如果您有一个 TextContent 部分类型,则您知道有一些形状对象锚定在一个字符上或作为一个字符。
我的测试文档表明我确实获得了XTextContent并且XTextRange可以通过getAnchor()
. 但是如何确定我正在收集的内容类型?唯一的方法是getString()
。如果对象是嵌入图像,我如何收集其数据?
我正在使用 C++,但我相信 Java 中的解决方案是可移植的。
从答案迁移
由于格式不佳,此评论作为答案发布。
感谢您的答复。
我打算使用 API。
我正在尝试GrahicObjects
从文档中收集的示例。通过使用 aXGraphicObjectsSupplier
我可以通过getGraphicObjects()
. 集合中的对象是并通过给Any
打印类型。getValueTypeName()
XTextContent
API 描述了该集合包含一个TextGraphicObject
“服务”。如何获取它的实例?