1

Apache の ODF takeit を使用して、適切に構造化された OpenDocument テキスト ファイルを生成しようとしています。データのさまざまな部分にスタイルを使用することで、これを実現したいと考えています。そこで、使用したいすべてのスタイルを含むテンプレート ファイルを生成しました。

次のステップは、Simple ODF API を使用してドキュメントをセットアップすることでした。どうやらこれはこれを行うための推奨される方法です。テスト目的のために、私は物事を単純にすることに決めました。だから今、私は1つの段落に定義済みのスタイルを与えようとしています.

私が書いたコードは次のとおりです。

public static void main(String[] args) throws Exception {

    TextDocument odt = TextDocument.loadDocument("template.ott");

    // List the paragraph styles, just to check if 'Abc' is actually there.
    // Which it is.
    OdfOfficeStyles styles = odt.getOrCreateDocumentStyles();
    for (OdfStyle e : styles.getStylesForFamily(OdfStyleFamily.Paragraph)) {
        System.out.println(e.getStyleNameAttribute());
    }

    // Create a paragraph, and give it the style 'Abc'
    Paragraph p = odt.addParagraph("Blah.");
    p.setStyleName("Abc");

    // Save the file
    odt.save("result.odt");

}

ただし、これは機能しないようです。「何とか」。追加した段落がデフォルトのスタイルで表示されます。過去数回のリリースで多くの変更があったように見えるため、ドキュメントはかなり不足しています。

Simple ODF API を使用して、私が望むことは可能ですか? それとも、実際の ODFDOM API を調べる必要がありますか? その場合は、そのためのコード スニペットをいただければ幸いです。

ありがとう。

4

1 に答える 1

2

次のようにして回避策を見つけました。

Paragraph p = odt.addParagraph("Blah.");
p.getOdfElement().setStyleName("Abc");

これはバグであり、元の質問のコードは実際に機能するはずです。そのため、ここで見つけることができるバグレポートを提出しました。これまでの回答から、元の例のコードが機能するはずであるという私の仮定は正しいと思います。

于 2014-11-01T18:12:10.680 に答える