2012-02-24 62 views
1

我遇到麻烦,将字体家族添​​加到带有itextsharp中内容的预定义HTML结构。不管我做什么,它只是继续去字体“宋体”。Itextsharp并将字体添加到htmlstring

我可以添加字体颜色没有麻烦。

这是我使用的是什么:

var style = new StyleSheet(); 
style.LoadTagStyle(HtmlTags.TABLE, HtmlTags.COLOR, "#00ff00"); 
style.LoadTagStyle("body", "font-family", "times new roman"); 

document.Open(); 

        List<IElement> sr = HTMLWorker.ParseToList(new StringReader(html), style); 

        foreach (IElement element in sr) 
        { 
         document.Add(element); 
        } 
document.close(); 

任何帮助将非常感激。

回答

1

默认情况下,iText [Sharp] HTML/XML解析器仅使用standard PDF Type 1 fontsTimes New Roman不是那些字体之一,所以你必须明确地注册它之前调用LoadTagStyle()

FontFactory.RegisterDirectories(); 

或:

FontFactory.Register(FULL_PATH_TO_TIMES_NEW_ROMAN); 

RegisterDirectories()寄存器所有 Windows系统字体,因此它会慢很多。

或者你可以去使用Type 1字体,的路线不注册多余的字体:

style.LoadTagStyle(HtmlTags.TABLE, HtmlTags.FACE, "times-roman"); 
+0

太谢谢你了!很好的完美和一个很好的修复! – 2012-02-24 12:39:06