0

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

1 回答 1

0

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

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

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

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

于 2013-02-23T03:33:41.973 回答