【问题标题】:DOCX4J: Null Pointer ExceptionDOCX4J:空指针异常
【发布时间】:2013-02-23 02:45:25
【问题描述】:

我使用 WordprocessingMLPackage.createPackage() 方法创建了一个新文档文件。 现在我正在尝试操作默认样式的内容(“标题 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();
        }
    }

【问题讨论】:

    标签: java docx4j


    【解决方案1】:

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

    字符样式不会有PPr组件,所以你必须在样式类型上进行分支,或者测试getPPr是否返回null。

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-08
      • 2015-07-12
      相关资源
      最近更新 更多