在ODT文档中使用jOpenDocument的字段中的新行

时间:2017-03-18 16:49:25

标签: java odt opendocument jopendocument

我试图用jOpenDocument库从java填写模板。

我想在一个字段中开始一个新行。 正常的新线路符号(\ n)不起作用。

当我在文档中手动执行此操作并查看xml文件(content.xml)时,我知道为什么这不起作用。对于该领域的每一个新行,都有一个单独的段落。

所以也许有一种方法可以在一个对象中组合多个段落,然后使用多个段落对象调用setField()。但直到现在我还没有找到任何解决方案。

代码示例:

EngineTemplate template = new RhinoTemplate(templateFile);
template.setField("nameField", "this is the content\nI wish to be multilined"); 

1 个答案:

答案 0 :(得分:0)

默认情况下,基本上会跳过\n,但您可以在模板中使用%enc:启动字段名称来更改它。

以下是org.jopendocument.dom.template.engine.Processor课程文档的解释:

  

从预处理的模板内容生成最终文档内容。   可以使用前缀来控制字段替换的行为:

     

<强> AS_STR   以下表达式将替换为String。对于XML元素,其树将被输出。

     

<强> ENCODE   以下表达式将转换为带有toString()的String,然后使用org.jopendocument.dom.OOXML.encodeWS(java.lang.String)进行编码。

     

<强> OO_XML   下面的表达式将转换为带有toString()的String,然后解析为OO XML。

     

如果没有指定这些,则XML元素将被视为要嫁接的OO XML(仅限其子元素),否则该值将被简单地设置为字段的文本。

宣布ENCODE字段:

public static final String ENCODE = "%enc:";