using System; using System.Drawing; using System.Drawing.Text; namespace Cheongbuk_MegaPark_Key_Management { public class FontLibrary { private static FontLibrary inst = new FontLibrary(); public PrivateFontCollection privateFont = new PrivateFontCollection(); [System.Runtime.InteropServices.DllImport("gdi32.dll")] private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont, IntPtr pdv, [System.Runtime.InteropServices.In] ref uint pcFonts); public static FontFamily[] Families { get { return inst.privateFont.Families; } } public FontLibrary() { AddFontFromMemory(Properties.Resources.DS_DIGIB); AddFontFromMemory(Properties.Resources.NotoSansCJKkr_Black); } private void AddFontFromMemory(byte[] fontData) { IntPtr fontPtr = System.Runtime.InteropServices.Marshal.AllocCoTaskMem(fontData.Length); System.Runtime.InteropServices.Marshal.Copy(fontData, 0, fontPtr, fontData.Length); uint dummy = 0; privateFont.AddMemoryFont(fontPtr, fontData.Length); AddFontMemResourceEx(fontPtr, (uint)fontData.Length, IntPtr.Zero, ref dummy); System.Runtime.InteropServices.Marshal.FreeCoTaskMem(fontPtr); } } }