views:

25

answers:

1

I'm trying to generate a docx-document using poi-ooxml. The following code produces almost the document I want, but for some reason it removes end and start spaces from the text.

XWPFDocument document = new XWPFDocument();

XWPFParagraph paragraph1 = document.createParagraph();
XWPFRun para1run1 = paragraph1.createRun();
para1run1.setText("Dette er ein tekst med space på slutten. Den har ein ");

XWPFRun para1run2 = paragraph1.createRun();
para1run2.setText("utheva tekst");
para1run2.setBold(true);

XWPFRun para1run3 = paragraph1.createRun();
para1run3.setText(" før ein tekst med space i byrjinga. Denne paragrafen skal også ha litt tekst slik at den blir ganske lang og går over fleire linjer.");

XWPFParagraph paragraph2 = document.createParagraph();
XWPFRun para2run1 = paragraph2.createRun();
para2run1.setText("Dette er ein tekst med space på slutten. Den har ein ");

XWPFRun para2run2 = paragraph2.createRun();
para2run2.setText("kursiv tekst");
para2run2.setItalic(true);

XWPFRun para2run3 = paragraph2.createRun();
para2run3.setText(" før ein tekst med space i byrjinga. Denne paragrafen skal også ha litt tekst slik at den blir ganske lang og går over fleire linjer.");

document.write(new FileOutputStream("c:/tmp/doc/docxtest.docx"));

The code generates the document, but the spaces before and after the texts "utheva tekst" and "kursiv tekst" are removed, and the end result looks like this:


Dette er ein tekst med space på slutten. Den har einutheva tekstfør ein tekst med space i byrjinga. Denne paragrafen skal også ha litt tekst slik at den blir ganske lang og går over fleire linjer.

Dette er ein tekst med space på slutten. Den har einkursiv tekstfør ein tekst med space i byrjinga. Denne paragrafen skal også ha litt tekst slik at den blir ganske lang og går over fleire linjer.


Where "utheva tekst" is bold and "kursiv tekst" is italic.

Any help on this will be very useful.

A: 

Whether you use poi or docx4j, I expect you need @xml:space ie

<w:t xml:space="preserve">

In docx4j, there is a method setSpace(String value) for setting this.

plutext