HTMLの解析にXMLWorkerを使用しています。スタイルで定義したフォントに問題がありました。たとえば、次のような単純なものです。
<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
実装の違い