2013-05-01 64 views
0

我正在使用iTextSharp創建PDF:s。我有一個小問題,即某些用戶可以使用的字體中缺少一些字形。是否有可能有一個後備字體或像你在CSS中做的字體堆棧?使用iTextSharp備份字體

回答

3

我想你正在尋找FontSelector類。

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

這個想法是創建一個FontSelector對象,使用AddFont()方法添加字體。現在,如果您的string包含缺少一種字體但以另一種字體呈現的字形,則可以使用process()方法創建一個Phrase,其中包含使用不同字體的一系列Chunk對象。

將字體添加到選擇器的順序非常重要。檢查string中的字符時,將檢查第一個字體是否存在與字符對應的字形。如果找到字形,該字體將用於該字符;如果缺少字形,則會檢查第二個字體。相同的字形可以以不同的字體出現,但iText會始終首先查看添加到選擇器的第一個字體,並在找到字形後立即忽略所有其他字體。