使用ODF工具包在段落上设置样式

时间:2014-10-26 14:43:06

标签: java opendocument odftoolkit odfdom

我正在尝试使用Apache的ODF编辑生成结构良好的OpenDocument文本文件。我希望通过为不同的数据部分使用样式来实现这一点。所以我生成了一个包含我想要使用的所有样式的模板文件。

我的下一步是尝试使用Simple ODF API来设置我的文档。显然这是推荐的方法。出于测试目的,我决定保持简单。所以现在我只想给一个段落一个预定义的样式。

这是我写的代码:

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");

}

但是,这似乎不起作用。 'Blah'。我添加的段落显示默认样式。看起来好像在最近几个版本中发生了很多变化,因此文档很少。

使用Simple ODF API我想要什么?或者我应该查看实际的ODFDOM API?如果是这种情况,我会非常感谢您的代码片段。

感谢。

1 个答案:

答案 0 :(得分:1)

我通过执行以下操作找到了解决方法:

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

我确信这是一个错误,原始问题的代码应该可行。因此,我提交了一份可以找到的错误报告here。从目前为止的回复中我得出的结论是,我假设原始示例中的代码应该正常工作。