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

Posted

技术标签:

【中文标题】使用 ODF 工具包设置段落样式【英文标题】:Setting style on a paragraph using ODF toolkit 【发布时间】:2014-10-26 14:43:06 【问题描述】:

我正在尝试使用 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?如果是这种情况,我们将非常感谢您提供代码 sn-p。

谢谢。

【问题讨论】:

【参考方案1】:

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

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

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

【讨论】:

以上是关于使用 ODF 工具包设置段落样式的主要内容,如果未能解决你的问题,请参考以下文章

求问:ueditor的工具栏如何才能多行显示

poi怎么在当前cursor创建段落

CORELDRAW段落文本框里的文字如何设置行间距?

在Word中 在一个样式中设置多种字符格

样式化组件文本或段落

CSSCSS 文本样式 ③ ( 文字排版案例一 | 设置标题 | div 中设置布局 | hr 标签设置横线 | p 标签分割段落 | 设置页面总体文字大小 | 修改 h1 标签样式 )