iTextSharp的和特殊字符(斯洛伐克字形)(iTextSharp and special ch

2019-07-30 23:31发布

我有一些特殊的斯洛伐克字符(例如C,N和T)的麻烦。 他们消失在iTextSharp的生成的PDF。

从我已经能够找到,这个问题与我的编码做BaseFont 。 目前我使用这样的:

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

有人认为,这应该工作:

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

但它抛出这个异常错误:

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

任何人都知道一个可能的原因和解决办法呢?

Answer 1:

问题就在这里:

BaseFont.CreateFont(BaseFont.HELVETICA ...

BaseFont.HELVETICA是一个标准的1型字体 ,并且不能用于您斯洛伐克语字符。 您需要使用的字体与正确的字形:

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


文章来源: iTextSharp and special characters (slovak graphemes)