【发布时间】:2014-04-28 22:18:08
【问题描述】:
我正在用 C# 编写一个库,它允许我将 HTML 转换为 PDF。显然,这个想法是它是跨平台的,也是我使用单声道的原因。为此,我必须使用 System.Drawing.Text.PrivateFontCollection 类加载卖方字体。
当应用程序执行完所有代码后,应用程序意外退出。经过多次测试,我意识到问题出在调用 Dispose 方法System.Drawing.Text.PrivateFontCollection 或System.Drawing.FontFamily 的Dispose() 时。
这个问题在 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 ();
}
}
}
【问题讨论】:
标签: c# fonts mono system.drawing privatefontcollection