Witam
Napisałem prosta aplikacje dodająca do istniejącego dokumentu PDF znak wodny. Jest wszystko OK dopóki w tekście znaku wodnego nie pojawią się polski znak.
PDPageContentStream cs = new PDPageContentStream(doc, page, AppendMode.APPEND, true, true);
String ts = ("Some sample text | Some sample text | ąćśę").toString();
PDFont font = PDType1Font.HELVETICA_BOLD;
float fontSize = 32;
PDExtendedGraphicsState r0 = new PDExtendedGraphicsState();
r0.setNonStrokingAlphaConstant(0.5f);
cs.setGraphicsStateParameters(r0);
cs.setNonStrokingColor(255,0,0); //Red
cs.beginText();
cs.setFont(font, fontSize);
cs.transform(Matrix.getRotateInstance(Math.toRadians(56), 60, 40));
cs.showText(ts);
Błąd który otrzymuje dotyczy linii cs.showText(ts);
Exception in thread "main" java.lang.IllegalArgumentException: U+0105 ('aogonek') is not available in this font Helvetica-Bold (generic: Arial-BoldMT) encoding: WinAnsiEncoding
at org.apache.pdfbox.pdmodel.font.PDType1Font.encode(PDType1Font.java:401)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:316)
at org.apache.pdfbox.pdmodel.PDPageContentStream.showText(PDPageContentStream.java:414)
at StartMulti.main(StartMulti.java:59)
Próbowałem z
PDTrueTypeFont font = PDTrueTypeFont.loadTTF(doc, new File("ArialMT.ttf"));
ale jest identycznie a rozmiar pliku wynikowego mocno przyrasta.
Możecie pomóc tej kwestii?
Pozdrawiam