0

HTML を PDF に変換できるライブラリをC#で作成しています。明らかに、それはクロスプラットフォームであり、なぜモノを使っているのかという考えです。これを行うには、Seller フォントをクラスでロードする必要があります。System.Drawing.Text.PrivateFontCollection

アプリケーションがすべてのコードの実行を終了すると、アプリケーションが予期せず終了します。多くのテストの後、問題はDispose メソッドが呼び出されSystem.Drawing.Text.PrivateFontCollectionたとき、またはDispose()ofSystem.Drawing.FontFamilyが呼び出されたときであることがわかりました。

この問題はWindows (私は Windows 7 32 ビットを使用しています) にあり、Linux では問題ありません

これはテストコードです

using System;
using System.Drawing.Text;
using System.IO;
using System.Runtime.InteropServices;
using System.Drawing;

namespace FORM
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            PrivateFontCollection pf = new PrivateFontCollection ();
            IntPtr fontBuffer = IntPtr.Zero;
            pf.AddFontFile ("C:\\Users\\James\\Downloads\\open sans\\open-sans.regular.ttf");

            Font f = new Font (pf.Families[0],12,FontStyle.Regular);

            try {
                pf.Dispose ();
            }
            catch{
            }
            pf = null;
            Console.WriteLine ("Hello World!");
            Console.ReadLine ();

            //pf.Dispose ();
        }
    }
}
4

1 に答える 1