Search code examples
listdocx4j

docx4j create unnumbered / bullet list


I would like to create an unnumbered list with bullets using docx4j in my Word document. I have found the following code that is supposed to do the work. But whatever I try, the generated list is a numbered list! I use Word 2010, German version and docx4j-2.8.1.

    wordMLPackage = WordprocessingMLPackage.createPackage();

    ObjectFactory factory = new org.docx4j.wml.ObjectFactory();
    P p = factory.createP();

    org.docx4j.wml.Text t = factory.createText();
    t.setValue(text);

    org.docx4j.wml.R run = factory.createR();
    run.getContent().add(t);

    p.getContent().add(run);

    org.docx4j.wml.PPr ppr = factory.createPPr();

    p.setPPr(ppr);

    // Create and add <w:numPr>
    NumPr numPr = factory.createPPrBaseNumPr();
    ppr.setNumPr(numPr);

    // The <w:ilvl> element
    Ilvl ilvlElement = factory.createPPrBaseNumPrIlvl();
    numPr.setIlvl(ilvlElement);
    ilvlElement.setVal(BigInteger.valueOf(0));

    // The <w:numId> element
    NumId numIdElement = factory.createPPrBaseNumPrNumId();
    numPr.setNumId(numIdElement);
    numIdElement.setVal(BigInteger.valueOf(1));

    wordMLPackage.getMainDocumentPart().addObject(p);

Can someone help me to generate a real unordered, buletted list?!


Solution

  • The code you have posted says "use list number 1, level 0".

    Evidently that list is a numbered list.

    Have a look in your numbering definitions part for a bulleted list, and use that one.

    If you don't have a bulleted list there, you'll need to add it. You can upload a sample docx to the docx4j online demo, to have it generate appropriate content for you. Or see ListHelper for an example of how it can be done.