Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

iText - polskie znaki przy wykorzystaniu Graphics2D

70 views
Skip to first unread message

Puchacz

unread,
Mar 6, 2009, 8:40:12 AM3/6/09
to
Witam,
Mam problem z polskimi znakami gdy tworze PDF przy uzyciu iText (nie
wyswietlaja sie).
Wykorzystuje metode opisana w rozdziale 12 iText in Action. Mam dosc
skomplikowanego PDFa do utworzenia, z elementami graficznymi itd, wiec
korzystam z posrednika do Graphics2D.

Znalazlem troche rozwiazan, ale wiekszosc opiera sie na zastosowaniu
BaseFont dla dokumentu, a ja wykorzystuje klase java.awt.Font.

Czy istnieje jakis sposob na zdefiniowanie kodowania dla calego
dokumentu? Ewentualnie jakis nizszych elementow jak PdfTemplate?

Dane pobierane sa z bazy i maja kodowanie UTF-8. Czcionka w PDF wychodzi
z kodowanie ANSI, nie mam nawet pomyslu gdzie i jak mozna to zmienic
przy takim ukladzie.

Z gory dzieki za pomoc.

Pozdrawiam,
Paweł Purchalak

Leszek Gawron

unread,
Mar 6, 2009, 8:58:33 AM3/6/09
to

nie uzywalem nigdy iTexta, ale zasada z innych narzedzi pewnie tez tutaj
dotyczy. Aby byla mozliwosc wyswietlania polskich znakow trzeba w
dokumencie osadzic polska czcionke.

Przyklad, gdy korzysta sie z FOP:

http://cocoon.apache.org/2.2/blocks/fop/1.0/1225_1_1.html

lg

janikad

unread,
Mar 9, 2009, 5:22:34 AM3/9/09
to
Witam,
Utwórz sobie klasę np. PolishFontMapper implementującą po FontMapper
Przekopiuj do niej zawartość klasy DefaultFontMapper (źródła IText)
Zamień BaseFont z CP1252 na CP1250.
Kawałek kodu wykorzystującego PolishFontMapper
Document doc = new Document();
PdfWriter pdf = PdfWriter.getInstance(doc, new FileOutputStream
(file));
doc.open();
FontFactory.registerDirectories();
mapper.insertDirectory("c:\\windows\\fonts");
PdfContentByte cb = pdf.getDirectContent();
PdfTemplate tp = cb.createTemplate(w, h);
Graphics2D g2 = tp.createGraphics(w, h, new PolishFontMapper());
Pozdrawiam

Arek Margraf

unread,
Mar 9, 2009, 8:19:24 AM3/9/09
to

Użytkownik "Puchacz" <pucha...@poczta.onet.pl> napisał w wiadomości
news:gor943$o6g$1...@achot.icm.edu.pl...


Generalnie to nie jest problem ani Javy, ani iTexta ani UTF'a ani bazy
danych. To jest problem PDF (jak standardu). Czcionki standardowe PDF nie
zawieraja polskich znaków (jak długo jeszcze - pytanie do Adobe) więc nalezy
po prostu wybierać czcionki które mają polskie znaki i je osadzać

A.


PS. BaseFontem możesz działac tylko twórz czionkę w oparciu o jakiegoś
TTF/OTF/Type1/3 z polskimi znakami.

I jeszcze coś Java nie obsługuje OTF z outlinami CFF a jedyniue TTF ale
iText pozwala na takie czcionki.

tomek

unread,
Mar 13, 2009, 7:30:20 PM3/13/09
to
Arek Margraf pisze:

>
> Użytkownik "Puchacz" <pucha...@poczta.onet.pl> napisał w wiadomości
> news:gor943$o6g$1...@achot.icm.edu.pl...
>> Witam,
>> Mam problem z polskimi znakami gdy tworze PDF przy uzyciu iText (nie
>> wyswietlaja sie).
>> Wykorzystuje metode opisana w rozdziale 12 iText in Action. Mam dosc
>> skomplikowanego PDFa do utworzenia, z elementami graficznymi itd, wiec
>> korzystam z posrednika do Graphics2D.
>>
>> Znalazlem troche rozwiazan, ale wiekszosc opiera sie na zastosowaniu
>> BaseFont dla dokumentu, a ja wykorzystuje klase java.awt.Font.
>>
>> Czy istnieje jakis sposob na zdefiniowanie kodowania dla calego
>> dokumentu? Ewentualnie jakis nizszych elementow jak PdfTemplate?
>>
>> Dane pobierane sa z bazy i maja kodowanie UTF-8. Czcionka w PDF
>> wychodzi z kodowanie ANSI, nie mam nawet pomyslu gdzie i jak mozna to
>> zmienic przy takim ukladzie.
>>
>
>
> Generalnie to nie jest problem ani Javy, ani iTexta ani UTF'a ani bazy
> danych. To jest problem PDF (jak standardu).

Chyba jednak to problem ITexta i UTF'a.

> Czcionki standardowe PDF
> nie zawieraja polskich znaków (jak długo jeszcze - pytanie do Adobe)
> więc nalezy po prostu wybierać czcionki które mają polskie znaki i je
> osadzać


Czcionki te ZAWIERAJĄ polskie znaki.
Z poziomu PHP (przerabiając troszkę biblioteki do generowania pdf'ów)
udawało mi się uzyskać polskie literki bez osadzania czcionek w dokumencie.

0 new messages