Do zapisu do pliku doc z pakietu MS Office uzywam wlasnie apache POI. I wszystko niby ładnie pięknie ale jesli w stringu mam jakis polski znak to po otworzeniu stworzonego dokumentu tam gdzie były polskie znaki pojawiły sie pytajniki. jesli ten sam tekst wyswietlam w jedicie to polskie znaki sa. Nie wiem czy to wina kodowania i nie potrafie sobie z tym poradzic. Oto kod:
try {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("dane\\wydruk.doc"));
HWPFDocument doc = new HWPFDocument(fs);
// centered paragraph with large font size
Range range = doc.getRange();
Paragraph par1 = range.insertAfter(new ParagraphProperties(), 0);
par1.setSpacingAfter(200);
par1.setJustification((byte) 0);
// justification: 0=left, 1=center, 2=right, 3=left and right
CharacterRun run1 = par1.insertAfter(data.oddzial);
run1.setFontSize(2 * 18);
// font size: twice the point size
// paragraph with bold typeface
for(int i=0; i<data.przedmioty.size(); i++){
Paragraph par2 = run1.insertAfter(new ParagraphProperties(), 0);
par2.setSpacingAfter(200);
CharacterRun run2 = par2.insertAfter(data.przedmioty.get(i).nazwa);
run2.setBold(true);
for(int j=0; j<data.przedmioty.get(i).komu.size(); j++){
// paragraph with italic typeface and a line indent in the first line
Paragraph par3 = run2.insertAfter(new ParagraphProperties(), 0);
par3.setFirstLineIndent(200);
par3.setSpacingAfter(200);
CharacterRun run3 = par3.insertAfter(data.przedmioty.get(i).komu.get(j));
run3.setItalic(true);
}
}
FileOutputStream out = new FileOutputStream(oddzialy[oddzial]+".doc");
doc.write(out);
out.close();
} catch (IOException ex) {}
To co podaje funkcja par1.insertAfter(), par2.insertAfter() i par3.insertAfter() to string, tak uprzedzam pytanie. Spieszy mi sie z tym, wiec jak macie pomysly to piszcie.