我试图通过ApachePOI阅读Microsoft word文档,发现提供了两种方便的方法来扫描文档,如getText()、getParagraphList()等。。但我的用例略有不同,我们希望扫描任何文档的方式是,它应该按照文档中出现的相同顺序为我们提供事件/信息,如标题、段落、表格。它将帮助我准备一个文档结构,比如,
<content>
<section>
<heading> ABC </heading>
<paragraph>xyz </paragraph>
<paragraph>scanning through APIs</paragraph>
<section>
.
.
.
</content>
其主要目的是保持标题和段落之间的关系,如原始文件所示。不确定,但像这样的东西对我有用吗,
Iterator<IBodyElement> itr = doc.getBodyElementsIterator();
while(itr.hasNext()) {
IBodyElement ele = itr.next();
System.out.println(ele.getElementType());
}
我能够得到段落列表,但没有标题信息使用此代码。只需提及,我对所有标题都感兴趣,它们可以通过使用样式或大字体显式标记为标题。
标题不内联存储在主文档中,它们位于其他位置,这就是为什么不将它们作为主体元素。主体元素是类似于节、段落和表的东西,而不是标题,因此您必须自己获取它们。
如果您在Apache Tika中查看这段代码,您将看到一个如何执行的示例。假设您正在迭代body元素,并且想要段落的页眉/页脚,您将需要这样的代码(基于Tika代码):
for(IBodyElement element : bodyElement.getBodyElements()) {
if(element instanceof XWPFParagraph) {
XWPFParagraph paragraph = (XWPFParagraph)element;
XWPFHeaderFooterPolicy headerFooterPolicy = null;
if (paragraph.getCTP().getPPr() != null) {
CTSectPr ctSectPr = paragraph.getCTP().getPPr().getSectPr();
if(ctSectPr != null) {
headerFooterPolicy = new XWPFHeaderFooterPolicy(document, ctSectPr);
// Handle Header
}
}
// Handle paragraph
if (headerFooterPolicy != null) {
// Handle footer
}
}
if(element instanceof XWPFTable) {
XWPFTable table = (XWPFTable)element;
// Handle table
}
if (element instanceof XWPFSDT){
XWPFSDT sdt = (XWPFSDT) element;
// Handle SDT
}
}
正如您在word文档中看到的,有许多带有要点的问题。现在,我正在尝试使用apache POI从文件中提取每个段落。这是我当前的代码 上述方法的问题在于它打印的是每一行而不是段落。此外,项目符号也从提取的字符串中删除。返回一个纯字符串。 谁能解释一下我做错了什么。也请建议如果你有一个更好的想法来解决它。
示例单词内容为 Apache POI提供了API来给出段落和表的列表,但我无法阅读段落(测试用例)并立即查找该段落后面的表。 我尝试使用XWPFWordExtractor(读取所有文本)、bodyElementIterator(遍历所有主体元素),但大多数都给出了方法,该方法给出了段落列表和方法,该方法给出了文档中的所有表的列表。 我如何浏览所有段落,停在标题‘测试用例’之后的段落(第4段),然后
问题内容: 我知道那里也有类似的问题,但是我找不到能回答我的祷告的东西。我需要的是一种从MS-Word文件访问某些数据并将其保存在XML文件中的方法。在python- docx 上阅读无济于事,因为它似乎只允许一个人写入Word文档,而不是阅读。要准确呈现我的任务(或我选择如何执行任务的方式):我想在文档中搜索关键字或短语(文档包含表格),并从关键字/短语所在的表格中提取文本数据找到了。有人有什么
我正在使用poi从docx文件中提取内容,在处理一个文件时,所有图片都丢失了,我检查了这个文件的格式,发现结构异常: 段落元素位于run元素内。我称之为嵌入段落,但我找不到使用poi解析嵌入段落的方法。我如何处理这些数据?
问题内容: 在某些情况下,我们可能需要从Word文档中获取文本以供将来在用户上传的文档中搜索字符串,例如在cv / resumes中进行搜索,并出现一个常见的问题,即如何获取文本,打开并阅读用户上载Word文档时,有一些有用的链接,但不能解决整个问题。我们需要在上载时获取文本并将文本保存在数据库中,以便在数据库中轻松搜索。 问题答案: class DocxConversion{ private $