Как создать документ HWPF с помощью apache poi - PullRequest
1 голос
/ 14 августа 2011

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

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 Ответ

4 голосов
/ 14 августа 2011

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

...