0

WordprocessingMLPackage.createPackage()メソッドを使用して新しいドキュメントファイルを作成しました。現在、デフォルトのスタイル(「見出し1」、「通常」など)の内容を操作しようとしています。スタイルのプロパティの値を出力しようとすると、NullPointerExceptionが返されます。名前を印刷できるので、スタイルはそこにあると確信しています。しかし、段落のプロパティにアクセスしようとすると、nullになります。

だから今、私はコンテンツに正しくアクセスしていないのだろうかと思っています。

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 に答える