0

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

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

4

1 回答 1

1

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

这里有些例子:

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

所有这些例子都取自我关于 iText的书的第 11 章。如果您浏览此文档,您会发现一些 PDF 示例,例如font_selection.pdftext4.pdf等...

于 2013-05-02T13:20:15.303 回答