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