Pregunta

I'm having problem creating a Paragraph with docx4j. Well, actually not the paragraph itself, but it's contents. I'm putting together a new document from paragraphs (actually "blocks" made of paragraphs) and everything is working fine. I'm appending them to a list, and when all needed paragraphs are there, I assemble the document. Now, between these blocks, I need new paragraphs, with custom text added. I'm using this function to create the paragraph:

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;
}

The print only prints "HEADER : ", the result.toString() is an empty string. Why is that?

BONUS question : I did not want to open a new thread for this. Is it possible, to add an id for a paragraph, which will appear in the generated html? (like p id="xyz" ...>

Thank you very much!

¿Fue útil?

Solución

If you want to see the XML your P object will become, use:

    System.out.println(
            XmlUtils.marshaltoString(result, true, true) );

org.docx4j.wml.P is a class generated by JAXB's xjc.

There are a couple of plugins listed at https://java.net/projects/jaxb2-commons/pages/Home which we could have used to generate a toString method, but we didn't.

If you want the text content of the paragraph, you can use TextUtils

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top