0

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

、どちらも機能しませんでした。

私の質問は次のとおりです。

  1. これにはどのような説明が考えられますか?
  2. XMLWorkerFontProviderFontFactoryImp実装の違い
4

1 に答える 1