如何使用apache poi创建HWPF文档

时间:2011-08-14 15:21:33

标签: apache-poi hwpf

请有人帮助我将文字放入段落中。我有这段代码:

private void createDOCDocument(String from, File file) throws Exception {

    POIFSFileSystem fs = new POIFSFileSystem(DOCGenerator.class.getClass().getResourceAsStream("/poi/template.doc"));
    HWPFDocument doc = new HWPFDocument(fs);
    Range range = doc.getRange();
    Paragraph par1 = range.insertAfter(new ParagraphProperties(), 0);    
    CharacterRun run1 = par1.insertAfter(from);
    run1.setFontSize(11);
    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(file));

}

但问题是,如果我将“from”字符串直接放入范围,它将在结果文档中,但如果我创建一个段落并将其放在那里,则该文档为空。即使我使用apache tika及其WordExtractor处理它,它也什么都没有。

btw /poi/template.doc是空文件。

如果我这样做:

Paragraph par1 = range.getParagraph(0);
CharacterRun run1 = par1.insertAfter(from);

和from是“什么”然后在文档中开头有“w”(最初的)字符......这到底是什么?

1 个答案:

答案 0 :(得分:4)

尝试最近的每晚构建/ svn结帐POI。谢尔盖目前正在大力处理HWPF代码库,并且最近修复了与您所描述的错误相关的错误。