Wiki

Clone wiki

Aspose Java for Docx4j / Create-New-Document

Aspose.Words

Document doc = new Document();

// DocumentBuilder provides members to easily add content to a document.
DocumentBuilder builder = new DocumentBuilder(doc);

// Write a new paragraph in the document with some text as "Sample Content..."
builder.writeln("Aspose Sample Content for Word file.");

// Save the document in DOCX format. The format to save as is inferred from the extension of the file name.
// Aspose.Words supports saving any document in many more formats.
doc.save("Aspose_NewDoc.docx",SaveFormat.DOCX);

Docx4j

WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
MainDocumentPart mdp = wordMLPackage.getMainDocumentPart();

// Example 1: add text in Title style
mdp.addStyledParagraphOfText("Title", "Example 1");

// Example 2: add normal paragraph (no explicit style)
mdp.addParagraphOfText("Example 2");

// Example 3a: bold text
// To get bold text, you must set the run's rPr@w:b,
// so you can't use the addParagraphOfText convenience method

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

org.docx4j.wml.Text  t = factory.createText();
t.setValue("Example 3a (bold)");

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

p.getContent().add(run);


org.docx4j.wml.RPr rpr = factory.createRPr();       
org.docx4j.wml.BooleanDefaultTrue b = new org.docx4j.wml.BooleanDefaultTrue();
b.setVal(true);     
rpr.setB(b);

run.setRPr(rpr);

// Optionally, set pPr/rPr@w:b      
org.docx4j.wml.PPr ppr = factory.createPPr();       
p.setPPr( ppr );
org.docx4j.wml.ParaRPr paraRpr = factory.createParaRPr();
ppr.setRPr(paraRpr);        
rpr.setB(b);

mdp.getJaxbElement().getBody().getContent().add(p);
// or just:
// mdp.getContent().add(p);
// but:
// mdp.addObject(p);
// is a better alternative if you are using a new style, since it 
// will ensure that the style is activated  

// Example 3b: bold text
// Well, actually you can use addParagraphOfText:
P p3b = mdp.addParagraphOfText("Example 3b (bold)");
R r3b = (R)p3b.getContent().get(0);
// .. now set rPr (I'll just reuse the above object)
r3b.setRPr(rpr);


// Example 4: Here is an easier way:
String str = "<w:p xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" ><w:r><w:rPr><w:b /></w:rPr><w:t>Example 4</w:t></w:r></w:p>";

mdp.addObject(
            org.docx4j.XmlUtils.unmarshalString(str) );


// Example 5: Let's add a table
int writableWidthTwips = wordMLPackage.getDocumentModel().getSections().get(0).getPageDimensions().getWritableWidthTwips();
int cols = 3;
int cellWidthTwips = new Double( 
                            Math.floor( (writableWidthTwips/cols ))
                                ).intValue();

Tbl tbl = TblFactory.createTable(3, 3, cellWidthTwips);
mdp.addObject(tbl);


// Pretty print the main document part
System.out.println(
        XmlUtils.marshaltoString(mdp.getJaxbElement(), true, true) );

// Optionally save it
if (save) {
    String filename = "OUT_CreateWordprocessingMLDocument.docx";
    wordMLPackage.save(new java.io.File(filename) );
    System.out.println("Saved " + filename);
}

Download Source Code

Updated