我试图用jOpenDocument库从java填写模板。
我想在一个字段中开始一个新行。 正常的新线路符号(\ n)不起作用。
当我在文档中手动执行此操作并查看xml文件(content.xml)时,我知道为什么这不起作用。对于该领域的每一个新行,都有一个单独的段落。
所以也许有一种方法可以在一个对象中组合多个段落,然后使用多个段落对象调用setField()。但直到现在我还没有找到任何解决方案。
代码示例:
EngineTemplate template = new RhinoTemplate(templateFile);
template.setField("nameField", "this is the content\nI wish to be multilined");
答案 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:";