DOCX4J:空指针异常

时间:2013-02-23 02:45:26

标签: java docx4j

我使用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();
        }
    }

1 个答案:

答案 0 :(得分:0)

样式可以是段落,字符,表格或列表样式。

字符样式不具有PPr组件,因此您必须在样式类型上进行分支,或者测试getPPr是否返回null。

如果PPr不为null,则getInd()可能返回null,因此您还需要在那里检查null。

我建议您保存docx,解压缩,然后查看styles.xml以更好地了解其中的内容。