Dodanie znaku wodnego z wyk. biblioteki PDFBox, problem z polskimi fontami.

0

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

0

A jesteś pewny ze ten font posiada znaki których chcesz użyć? Bo wyjatek wydaje sie całkiem jasny i zrozumiały

0

mam identyczna aplikacje ale z wykorzystaniem iText i tam to działa poprawnie. Musiałem tylko zdefiniować font z BaseFont.CP1250

BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.EMBEDDED);

0

Witam

Aby móc korzystać za free z iText zgodnie z warunkami licencji Open Source AGPL muszę kod programu udostępnić publicznie.

Czy ktoś z Was to robił?
Gdzie mogę taki kod opublikować aby spełnić warunki AGPL?

Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0