我在使用docx4j创建段落时遇到问题。嗯,实际上不是段落本身,而是内容。我正在整理一个段落中的新文档(实际上是段落中的“块”),一切正常。我将它们附加到列表中,当所有需要的段落都在那里时,我组装文档。现在,在这些块之间,我需要添加自定义文本的新段落。我正在使用此函数来创建段落:
private P createParagraph(String content) {
P result = factory.createP();
R run = factory.createR();
Text text = factory.createText();
text.setValue(content);
run.getContent().add(text);
result.getContent().add(run);
System.out.println("HEADER : " + result.toString());
return result;
}
print只打印“HEADER:”,result.toString()是一个空字符串。那是为什么?
奖励问题:我不想为此打开新主题。是否有可能为段落添加一个id,它将出现在生成的html中? (比如p id =“xyz”......>
非常感谢!
答案 0 :(得分:2)
如果要查看P对象将成为的XML,请使用:
System.out.println(
XmlUtils.marshaltoString(result, true, true) );
org.docx4j.wml.P
是由JAXB的xjc
生成的类。
https://java.net/projects/jaxb2-commons/pages/Home列出了几个插件,我们可以用来生成toString方法,但我们没有。
如果您想要段落的文字内容,可以使用TextUtils