Как создать документ 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, и ошибки, подобные описанной вами, недавно были исправлены.