我有一个Word文档,其中有一个像@DATE这样的变量。当我们从 XWPFParagraph 将其读取为 XWPFRun 时,我们得到两个运行 1.“@”和 2.“DATE。
如何获取“DATE”(第二次运行)的字体大小?我得到第一次运行“@”字体大小,但第二次运行“DATE”为空
for (XWPFParagraph p : cell.getParagraphs()) {
for(XWPFRun r1 : p.getRuns()){
iFontSize = r1.getFontSizeAsDouble()
}
}
因此,对于第二次运行“DATE”,getFontSizeAsDouble 返回 null。
要记住的一点是,当您迭代段落中的运行时,您需要处理具有不同属性(例如字体大小)的多个运行。在您的情况下,您仅访问每个段落中最后一次运行的字体大小,这可能并不总是您感兴趣的。
这样可以更好地解决您的问题:
for (XWPFParagraph p : cell.getParagraphs()) {
for(XWPFRun run : p.getRuns()) {
if(run.text().contains("@DATE")) {
double fontSize = run.getFontSizeAsDouble();
System.out.println("Font size of '@DATE' run: " + fontSize);
break;
}
}
}
上面的代码将迭代段落中的每个运行,并检查运行中的文本是否包含模式“@DATE”。如果找到匹配项,它将检索该特定运行的字体大小。使用此方法可确保您获得专门针对“@DATE”的“DATE”部分的字体大小。