[iText] Polskie znaki

0

Witam. Czy ktoś może używał już biblioteki iText?
Jeśli tak, to czy da się jakoś przełączyć kodowanie wynikowego PDF'a, żeby ten zawierał polskieznaki, tzn. jak tworze przy jego pomocy pdf i chcę zapisać "ilość", to w wynikowym pliku mam "ilo".

Proszę o szybką odpowiedź.
Pozdrawiam.

0

Kiedy ustalasz czcionke zamiast NOT_EMBEDDED uzywaj CACHED - dodaje to czcionke do pdfa. Niestety jest problem przy wersji Acrobat Reader 4.0 ,ktory zamiast czcionek wstawia kratki. Jednak od 5.0 wszystko dziala jak nalezy.

à propos ... wie ktos jak rozwiazac problem z tym Acrobatem 4.0 ?? Niestety jestem w sytuacji w ktorej nie moge zainstalowac nowszej wersji.
No i drugi problem przy stosowaniu napisow z polskimi literami ... czcionki sa wtedy grubsze i rozmyte kiedy tylko wystepuja w nich polskie litery.

A PDF mial byc formatem tak samo wygladajacym wszedzie i na wszystkim....

0

ja mam niestety problem z literka "Ś"... u Was dziala?

pozdrawiam

0

ok, juz sobie poradzilem.. przekazwany text nalezalo przekodowac do ISO

2

Ktos mnie pytal jak to zrobic - oto kawalek kodu (w koncu kodowanie dalo polowiczny efekt - oto dzialajace rozwiazanie):

BaseFont helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.EMBEDDED);
Font helvetica16=new Font(helvetica,16);
new Paragraph("Śćźół:",helvetica16);

pozdrawiam

0

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

A skąd jest klasa BaseFont? Nie mogę znaleźć jej w import com.lowagie.text :-(

0

Sorry za głupie pytanie :-[ ... odp:

com.lowagie.text.pdf.BaseFont;
0

wstawilem ten kod do mojego programu i dalej nie dzialaja polskie znaki, przynajmniej nie wszystkie, dobrze wyswietla tylko ó i ł, kod wyglada tak:

public void createPdf(){
Document document=new Document(PageSize.A4, 50, 50, 50, 50);
try{
PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("printable_document.pdf"));
document.open();
BaseFont times = BaseFont.createFont(BaseFont.TIMES_ROMAN, BaseFont.CP1250,BaseFont.EMBEDED);
com.lowagie.text.Font t9=new com.lowagie.text.Font(times,9);
String line="Śćźół:";
document.add(new Paragraph(line,t9));

}
catch (Exception exception){
}
document.close();
}

bardzo prosze o pomoc, uzywam acrobat readera w wersji 8.1.2

0

Jeśli ktoś ma jeszcze problemy z polskimi czcionkami to należy:

  1. importować klasę z pakietu za pomocą : import com.itextpdf.text.pdf.BaseFont;
  2. zadeklarować zmienną statyczną (tu: helvetica) : static BaseFont helvetica;
  3. w bloku try...catch zainicjować zmienną helvetica (tu jest podany polski charset cp1250) np.: helvetica = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.EMBEDDED);
  4. na podstawie zmiennej helvetica powołać do życia zmienną polskieFonty: com.itextpdf.text.Font polskieFonty=new com.itextpdf.text.Font(helvetica,10);
  5. wstawić tam gdzie chcemy, np.: preface.add(new Paragraph("Title of the document: zażółć gęślą jaźń", polskieFonty));
  6. Pozdrawiam ;)
0

Trochę odkopię bo pracuję z wersją 7.0 i już nie ma BaseFont ktoś ma pomysł jak zrobić polskie znaki? Głównie pomija mi literkę ł czcionkę mam consolas

0
var myFont = FontFactory.GetFont(BaseFont.HELVETICA, BaseFont.CP1250, BaseFont.EMBEDDED,8);
doc.Add(new Paragraph("Tekst do wyświetlenia",myFont));
0

Witajcie, przepraszam za ponowne odkopanie, ale widzę że mieliście podobne problemy do mojego więc może będziecie w stanie mi pomóc albo przynajmniej potwierdzić że pomóc się nie da.
Z racji tego może nie warto zakładać nowego wątku.

Otóż mam problem z polskimi znakami ale (to istotne) przy ekstrakcji tekstu z już istniejącego PDF'a. Gdy wyciągam z niego tekst dostaje bardzo ładny tekst poza polskimi znakami, np. zamiast "ł" jest "B" więc jakiekolwiek kodowanie lub formatowanie po ekstrakcji chyba mija się z celem.

Zamiast "Spółka z ograniczoną odpowiedzialnością - Spółka" otrzymuję "SpóBka z ograniczon\u0005 odpowiedzialno[ci\u0005 \u0014 SpóBka" przy czym podczas zaznaczania linijki tekstu w PDF np. w FireFox, Chrome, AdobeReader nie powoduje żadnych problemów i prawidłowo wyświetla polskie znaki więc sądzę że plik PDF jest poprawny.

Wiecie może czy mogę gdzieś zmienić domyślne kodowanie znaków ekstraktora tekstu?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.