6

我在处理一些特殊的斯洛伐克语字符(例如 č、ň 和 ť)时遇到问题。它们正在 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

有人知道可能的原因和解决方案吗?

4

1 回答 1

13

问题在这里:

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)));
}
于 2012-08-14T18:28:50.067 回答