【发布时间】:2015-07-16 16:20:51
【问题描述】:
在.doc文件中,有一个函数可以通过使用获取段落中的每个字符
CharacterRun charrun = paragraph.getCharacterRun(k++);
然后我可以使用这些字符运行来检查它们的属性,例如
if ( charrun.isBold() == true) System.out.print(charrun.text());
或类似的东西。但是 .docx 文件似乎没有可以读取每个单词的字符运行方法,我尝试使用
XWPFParagraph item = paragraph.get(i);
List<XWPFRun> charrun = item.getRuns();
我发现当你在 XWPF 中调用字符 run 时,它不会返回一个字符给你,但它会在文档中返回一些随机长度的字符串
XWPFRun temp = charrun.get(0);
System.out.println(temp.gettext(0));
此代码不会返回段落中的第一个字符。
那么我该如何解决这个问题?
【问题讨论】:
-
.doc和.docx的工作方式相同 - CharacterRun 是应用相同格式的字符序列。它可能是 1 个或多个字符长,这取决于 Word 想做什么。所以,你需要在一个段落中一点一点地啃,而不是一次一个字符 -
有没有办法一次读取一个字符?我不知道如何让它在整个段落中阅读并在段落结尾时停止。
-
-
感谢您的回答,我如何获取段落中的所有运行,您能告诉我示例代码吗?附言。我还使用了 XWPFRun.getFontFamily() 方法,它返回 null 给我这是什么意思? PS2。 getFontSize 也返回 0 给我
-
只是表示默认应用。稍后将发布代码
标签: java api apache-poi document docx