使用 iTextSharp 的后备字体
Posted
技术标签:
【中文标题】使用 iTextSharp 的后备字体【英文标题】:Fallback font with iTextSharp 【发布时间】:2013-04-25 11:38:56 【问题描述】:我正在使用 iTextSharp 创建 PDF:s。我有一个小问题,用户可以使用的某些字体中缺少一些字形。是否可以像在 CSS 中那样使用后备字体或字体堆栈?
【问题讨论】:
【参考方案1】:我认为您正在寻找 FontSelector 类。
有一个 Java 示例 here 和一个 C# 示例 here。
这个想法是创建一个FontSelector
对象,您可以使用AddFont()
方法向其中添加字体。现在,当您有一个 string
包含一种字体中缺少但以另一种字体存在的字形时,您可以使用 process()
方法创建一个由一系列 Chunk
对象组成的 Phrase
不同的字体。
将字体添加到选择器的顺序很重要。在检查string
中的字符时,将检查第一个字体是否存在与字符对应的字形。如果找到字形,则该字体将用于该字符;如果缺少字形,则将检查第二种字体。相同的字形可以出现在不同的字体中,但 iText 将始终首先查看添加到选择器的第一个字体,并在找到字形后立即忽略所有其他字体。
【讨论】:
以上是关于使用 iTextSharp 的后备字体的主要内容,如果未能解决你的问题,请参考以下文章
使用 iTextSharp 添加水印文本时,PAC 工具中出现 iText 7 警告
iText7 将 HTML 转换为 PDF“System.NullReferenceException”。