2012-08-14 11 views
5

Mam problem z niektórymi słowackimi znakami (na przykład č, ň i ť). Znikają one w wygenerowanym przez itextsharp formacie pdf.iTextCarp i znaki specjalne (słowackie grafemy)

Z tego co udało mi się znaleźć, problem ten ma do czynienia z kodowaniem mojego BaseFont. Obecnie używam to:

BaseFont.CreateFont(BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.CP1250, BaseFont.NOT_EMBEDDED) 

Ktoś zasugerował, że to powinno działać:

BaseFont.CreateFont(BaseFont.HELVETICA, iTextSharp.text.pdf.BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED) 

Ale to rzuca ten błąd wyjątek:

System.ArgumentException was caught 
Message='Identity-H' is not a supported encoding name. 
Parameter name: name 
ParamName=name 
Source=mscorlib 

ktoś wie możliwe przyczyny i rozwiązania tego ?

+0

Dlaczego upadły? – Muleskinner

Odpowiedz

12

Problemem jest tutaj:

BaseFont.CreateFont(BaseFont.HELVETICA ... 

BaseFont.HELVETICA jest standard type 1 font i nie mogą być wykorzystywane do swoich słowackich znaków. Musisz użyć czcionki z prawidłowymi glifami:

string FONT = "c:/windows/fonts/arialbd.ttf"; 
using (Document document = new Document()) { 
    PdfWriter.GetInstance(document, STREAM); 
    document.Open(); 
    BaseFont bf = BaseFont.CreateFont(
    FONT, BaseFont.IDENTITY_H, BaseFont.EMBEDDED 
); 
    document.Add(new Paragraph("č, ň and ť", new Font(bf, 12))); 
}