如何在Apache POI(java)中读取.docx中的字体大小和字体名称

时间:2015-05-07 07:35:32

标签: java fonts apache-poi document docx

这是我的代码。

XWPFRun run = runlist.get(0);
double fontsize = (double)(run.getFontSize());
String fontfamily = (String)run.getFontFamily();

当它读取.docx文件时,有时会返回字体大小为-1而字体系列为null。

我知道这是因为它们是默认值,但我不想-1和null我只想要该默认值的名称。

我怎么读?

2 个答案:

答案 0 :(得分:0)

XWPFRun上的字体/字符属性仅返回覆盖详细信息,因此运行到周围文本的设置不同

如果运行使用默认样式,您需要向上移动到它所属的XWPFParagraph(或表格等),然后调用getStyleId()以获得适用的样式到段落。

然后,在文档上,调用XWPFDocument.getStyles()getStyle(styleId)以获取适用于感兴趣段落的XWPFStyle对象。

从样式中,您可以获取该样式中定义的属性,例如字体。如果样式从一个继承,您可能还需要获取父级。

目前,XWPFStyle对象的级别有点低,所以要改进它的补丁是gratefully received!

答案 1 :(得分:0)

我遇到了类似的问题,我用document.getStyles().getDefaultRunStyle().getFontSize();

解决了这个问题