1

我正在使用 iTextSharp 创建 PDF:s。我有一个小问题,用户可以使用的某些字体中缺少一些字形。是否可以像在 CSS 中那样使用后备字体或字体堆栈?

4

1 回答 1

4

我认为您正在寻找 FontSelector 类。

这里有一个 Java 示例,这里有一个 C# 示例。

这个想法是创建一个FontSelector对象,您可以使用该AddFont()方法向其中添加字体。现在,当您的 astring包含一种字体中缺少的字形但以另一种字体存在时,您可以使用该process()方法创建Phrase由一系列Chunk使用不同字体的对象组成的 a。

将字体添加到选择器的顺序很重要。在检查 a 中的字符时string,将检查第一个字体是否存在与字符对应的字形。如果找到字形,则该字体将用于该字符;如果缺少字形,则将检查第二种字体。相同的字形可以出现在不同的字体中,但 iText 将始终首先查看添加到选择器的第一个字体,并在找到字形后立即忽略所有其他字体。

于 2013-05-01T14:50:16.857 回答