我使用WordprocessingMLPackage.createPackage()方法创建了一个新的Document文件。 现在我试图操纵默认样式的内容(“标题1”,“正常”等)。 当我尝试打印出样式属性的值时,它返回NullPointerException。我很确定样式是否存在因为名字可以打印出来。但是当我尝试访问它的段落属性时,它是空的。
所以现在我想知道如果我没有正确访问内容。
private static void createStyleFile() throws InvalidFormatException
{
WordprocessingMLPackage doc = WordprocessingMLPackage.createPackage();
List<Style> styleList = doc.getMainDocumentPart().getStyleDefinitionsPart().getJaxbElement().getStyle();
for(int x = 0; x < styleList.size(); x++)
{
Style curStyle = styleList.get(x);
//C.out(curStyle.getStyleId());
C.out(curStyle.getName().getVal());
curStyle.getPPr().getInd().getFirstLine().intValue();
}
}
答案 0 :(得分:0)
样式可以是段落,字符,表格或列表样式。
字符样式不具有PPr组件,因此您必须在样式类型上进行分支,或者测试getPPr是否返回null。
如果PPr不为null,则getInd()可能返回null,因此您还需要在那里检查null。
我建议您保存docx,解压缩,然后查看styles.xml以更好地了解其中的内容。