3

我在使用 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;
}

打印只打印“HEADER :”,result.toString() 是一个空字符串。这是为什么?

奖励问题:我不想为此打开一个新线程。是否可以为将出现在生成的 html 中的段落添加 id?(如 p id="xyz" ...>

非常感谢!

4

1 回答 1

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

于 2013-09-05T12:38:01.920 回答