我正在使用 XMLWorker 来解析 html。我在样式中定义的字体一直存在一些问题。例如,像这样简单的事情:
<span style="font-family: Garamond">Foo Garamond</span>
没有工作。
我使用它作为我的 css 应用程序:
CssAppliers ca = new CssAppliersImpl();
为了检查是否是 html 的编码问题或任何其他问题......,我自己实现了 IFontProvider:
class MyFontProvider : IFontProvider
{
public bool IsRegistered(string fontname)
{
return false;
}
public Font GetFont(string fontname, string encoding, bool embedded, float size, int style, BaseColor color)
{
var font = FontFactory.GetFont(fontname, encoding, embedded, size, style, color);
return new Font(font);
}
}
然后,这个:
CssAppliers ca = new CssAppliersImpl(new MyFontProvider());
太好了!!!,效果很好!!!,如果我将这个传递给构造函数:
CssAppliers ca = new CssAppliersImpl(new XMLWorkerFontProvider());
也有效。
因此,很明显字体提供程序的默认实现不起作用。我将其定义为:
CssAppliers ca = new CssAppliersImpl();
or
CssAppliers ca = new CssAppliersImpl(new FontFactoryImp());
,而且都没有工作。
我的问题是:
- 这有什么可能的解释?
- 区别
XMLWorkerFontProvider
与FontFactoryImp
实现