【问题标题】:Chinese characters in watermark not shown properly when iTextSharp is used. Some characters are shown as questionmark使用 iTextSharp 时水印中的汉字显示不正确。某些字符显示为问号
【发布时间】:2013-05-02 11:05:11
【问题描述】:

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

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

【问题讨论】:

  • 我怀疑代码页 1252 包含汉字。
  • 请提供一些您尝试过的代码。

标签: itextsharp


【解决方案1】:

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

这里有一些例子:

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

所有这些例子都取自chapter 11 of my book about iText。如果您浏览此文档,您会发现一些 PDF 示例,例如 font_selection.pdftext4.pdf 等...

【讨论】:

  • 你能用一些示例编码突出显示吗?
  • 请点击我回答中的链接。这些链接是指实际的工作示例代码。
  • 感谢您提及 IDENTITY_H !
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-31
  • 1970-01-01
  • 2016-11-14
  • 2015-11-07
  • 2012-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多