2013-05-01 63 views
0

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

回答

3

我想你正在寻找FontSelector类。

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

这个想法是创建一个FontSelector对象,使用AddFont()方法添加字体。现在,如果您的string包含缺少一种字体但以另一种字体呈现的字形,则可以使用process()方法创建一个Phrase,其中包含使用不同字体的一系列Chunk对象。

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