1

我正在尝试使用 Apache 的 ODF takeit 生成结构良好的 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");

}

但是,这似乎不起作用。“废话”。我添加的段落以默认样式显示。看起来在最近的几个版本中发生了很多变化,因此文档相当稀缺。

使用 Simple ODF API 可以实现我想要的吗?或者我应该查看实际的 ODFDOM API?如果是这种情况,将不胜感激代码片段。

谢谢。

4

1 回答 1

2

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

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

我确信这是一个错误,原始问题中的代码应该可以正常工作。因此,我提交了一份可以在此处找到的错误报告。从到目前为止的响应中,我了解到我对原始示例中的代码应该工作的假设是正确的。

于 2014-11-01T18:12:10.680 回答