使用iTextSharp的后备字体

时间:2013-05-01 13:09:29

标签: pdf fonts itextsharp

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

1 个答案:

答案 0 :(得分:4)

我认为你正在寻找FontSelector类。

有一个Java示例here和一个C#示例here

我们的想法是创建一个FontSelector对象,使用AddFont()方法添加字体。现在,当您的string包含一种字体中缺少的字形但以另一种字体显示时,您可以使用process()方法创建一个由Phrase组成的字符组成的Chunk string使用不同字体的对象。

将字体添加到选择器的顺序非常重要。检查{{1}}内的字符时,将检查第一个字体是否存在与字符对应的字形。如果找到一个字形,该字体将用于该字符;如果缺少字形,将检查第二种字体。相同的字形可以存在于不同的字体中,但iText将始终查看添加到选择器的第一个字体,并且一旦找到字形就会忽略所有其他字体。