Как создать документ HWPF с помощью apache poi

Пожалуйста, кто-нибудь, помогите мне поместить текст в параграфы. У меня есть этот код:

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, он ничего не получает.

Кстати /poi/template.doc является пустым документом.

Если я сделаю это так:

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

и от "что угодно", то в документе есть "w" (начальный) символ в начале... Что это, черт возьми?

1 ответ

Попробуйте с недавней ночной проверкой POI сборки / svn. В настоящее время Сергей работает над базой кода HWPF, и ошибки, подобные описанной вами, недавно были исправлены.

Другие вопросы по тегам