Itextsharp并将字体添加到htmlstring

时间:2012-02-24 10:15:42

标签: c# itextsharp

我在使用itextsharp中的内容将font-family添加到预定义的HTML结构时遇到了麻烦。 无论我做什么,它都会继续使用字体“Arial”。

我可以毫无困难地添加字体颜色。

这就是我正在使用的:

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 个答案:

答案 0 :(得分:2)

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");