使用Docx4j创建新段落

时间:2013-09-05 11:59:51

标签: docx4j

我在使用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”......>

非常感谢!

1 个答案:

答案 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