2012-08-14 86 views
5

Tengo problemas con algunos caracteres eslovacos especiales (por ejemplo, č, ň y ť). Están desapareciendo en el pdf generado de itextsharp.iTextSharp y caracteres especiales (grafemas eslovacos)

Por lo que he podido encontrar, este problema tiene que ver con la codificación de mi BaseFont. Actualmente estoy usando esto:

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

alguien sugirió que esto debería funcionar:

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

Pero que arroja este error de excepción:

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

Alguien sabe una posible razón y la solución a este ?

+0

¿Por qué el voto a favor? – Muleskinner

Respuesta

12

El problema es aquí:

BaseFont.CreateFont(BaseFont.HELVETICA ... 

BaseFont.HELVETICA es una standard type 1 font y no se pueden utilizar para sus caracteres eslovacos. Debe utilizar una fuente con los glifos correctos:

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))); 
}