Witajcie,
Mam problem z biblioteką Apache PDFBox. Potrzebuję wypełnić formularz w pdfie tekstem z polskimi znakami. Niestety otrzymuję błąd:
String text = "zażółcić gęślą jaźń";
PDDocument document = PDDocument.load(new File("/home/zaprogramowany/Pulpit/plik.pdf"));
PDDocumentCatalog documentCatalog = document.getDocumentCatalog();
PDAcroForm acroForm = documentCatalog.getAcroForm();
PDField field = acroForm.getField("tekst");
field.setValue(text);
document.save(new File("/home/zaprogramowany/Pulpit/generated.pdf"));
Błąd:
Exception in thread "main" java.lang.IllegalArgumentException: U+017C ('zdot') is not available in this font's encoding: WinAnsiEncoding
at org.apache.pdfbox.pdmodel.font.PDType1Font.encode(PDType1Font.java:345)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286)
at org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:315)
at org.apache.pdfbox.pdmodel.interactive.form.PlainTextFormatter.format(PlainTextFormatter.java:195)
at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.insertGeneratedAppearance(AppearanceGeneratorHelper.java:373)
at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceContent(AppearanceGeneratorHelper.java:237)
at org.apache.pdfbox.pdmodel.interactive.form.AppearanceGeneratorHelper.setAppearanceValue(AppearanceGeneratorHelper.java:144)
at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.constructAppearances(PDTextField.java:263)
at org.apache.pdfbox.pdmodel.interactive.form.PDTerminalField.applyChange(PDTerminalField.java:225)
at org.apache.pdfbox.pdmodel.interactive.form.PDTextField.setValue(PDTextField.java:218)
Domyślam się że czcionka, którą napisany jest pdf nie obsługuje polskich znaków, lecz wypełniając formularz w Acrobat Pro wszystko działa poprawnie. Czcionka której używam to Arial.