使用iTextSharp时,水印中的中文字符未正确显示。某些字符显示为问号

时间:2013-05-02 11:05:12

标签: itextsharp

使用iTextSharp向pdf文件添加水印时,中文字符显示为问号。

我尝试使用基本字体HELVETICA并尝试了CP1252之类的选项。此外,我尝试给出Windows字体中的字体名称,并支持中文。但每次问号都会显示在最终的pdf文件中,而不是中文字符。

1 个答案:

答案 0 :(得分:1)

Helvetica只包含有限数量的拉丁字形。如iText documentation中所述,您无法使用该字体来创建中文字符。您需要一个字体文件,例如arialuni.ttf,并使用它来创建BaseFont对象。然后使用该BaseFont对象在绝对位置添加String或创建Font对象以在高级对象中使用。

以下是一些例子:

  • 如何使用字体文件,例如arialbd.ttf:EncodingExample在您的情况下,您将使用arialuni.ttf和编码IDENTITY_H
  • 如果您没有ttf文件,如何使用True Type Collection:TTCExample
  • 如何创建包含需要不同字体的字形的字符串:FontSelectionExample

所有这些示例都来自chapter 11 of my book有关iText的内容。如果您浏览此文档,您将找到一些PDF示例,例如font_selection.pdftext4.pdf等...