【发布时间】:2013-07-09 04:41:54
【问题描述】:
我试图找出 word 文档中是否存在字体为 2 的任何内容。但是,我无法做到这一点。首先,我尝试在只有一行和 7 个单词的示例 Word 文档中读取每个单词的字体。我没有得到正确的结果。
这是我的代码:
HWPFDocument doc = new HWPFDocument (fileStream);
WordExtractor we = new WordExtractor(doc);
Range range = doc.getRange()
String[] paragraphs = we.getParagraphText();
for (int i = 0; i < paragraphs.length; i++) {
Paragraph pr = range.getParagraph(i);
int k = 0
while (true) {
CharacterRun run = pr.getCharacterRun(k++);
System.out.println("Color: " + run.getColor());
System.out.println("Font: " + run.getFontName());
System.out.println("Font Size: " + run.getFontSize());
if (run.getEndOffSet() == pr.getEndOffSet())
break;
}
}
但是,上面的代码总是将字体大小加倍。即如果文档中的实际字体大小为 12,则输出 24,如果实际字体为 8,则输出 16。
这是从word文档中读取字体大小的正确方法吗??
【问题讨论】:
-
你可以尝试使用this Word-VBA logic(如果可能在java中)...
标签: java ms-word apache-poi word-processor