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