This program shows how to use Apache POI HWPF to create a Word document. It sets various font and paragraph properties (like bold, italic, center alignment and first line indent), and adds a custom document property. For more options, check out the
JavaDoc:org.apache.poi.hwpf.usermodel.Paragraph and
JavaDoc:org.apache.poi.hwpf.usermodel.CharacterRun classes. For some reason, HWPF can't create a document from scratch, so an empty document ('empty.doc') needs to be present when the code is run.
import java.io.*;
import org.apache.poi.hpsf.CustomProperties;
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
public class CreateWordDoc {
public static void main (String[] args) throws Exception {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("empty.doc"));
HWPFDocument doc = new HWPFDocument(fs);
Range range = doc.getRange();
Paragraph par1 = range.insertAfter(new ParagraphProperties(), 0);
par1.setSpacingAfter(200);
par1.setJustification((byte) 1);
CharacterRun run1 = par1.insertAfter("one");
run1.setFontSize(2 * 18);
Paragraph par2 = run1.insertAfter(new ParagraphProperties(), 0);
par2.setSpacingAfter(200);
CharacterRun run2 = par2.insertAfter("two two two two two two two two two two two two two");
run2.setBold(true);
Paragraph par3 = run2.insertAfter(new ParagraphProperties(), 0);
par3.setFirstLineIndent(200);
par3.setSpacingAfter(200);
CharacterRun run3 = par3.insertAfter("three three three three three three three three three "
+ "three three three three three three three three three three three three three three "
+ "three three three three three three three three three three three three three three");
run3.setItalic(true);
DocumentSummaryInformation dsi = doc.getDocumentSummaryInformation();
CustomProperties cp = dsi.getCustomProperties();
if (cp == null)
cp = new CustomProperties();
cp.put("myProperty", "foo bar baz");
dsi.setCustomProperties(cp);
doc.write(new FileOutputStream("new-hwpf-file.doc"));
}
}
CategoryCodeSamples CodeBarn