作成日: 2026/03/25 最終更新日: 2026/03/25
文書種別
使用方法
詳細
FontResolverクラスの実装によって、任意の外字ファイルをフォントに割り当てる(リンクする)ことができます。
リンク方式の外字は実行環境によって字形が変化する可能性がありますが、この方法を使用すると常に同じ字形で表示できます。
◆実装例
public sealed class FontResolver : GrapeCity.ActiveReports.IFontResolver
{
static readonly FontCollection _fonts = new FontCollection();
static FontResolver()
{
// フォントフォルダ
var path_sys = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Fonts);
var path_app = Path.Combine(Application.StartupPath, "fonts");
// 外字ファイル
var eudc_default = Font.FromFile(Path.Combine(path_app, "EUDC.TTE"));
var eudc_gothic = Font.FromFile(Path.Combine(path_app, "gothic.TTE"));
var eudc_mincho = Font.FromFile(Path.Combine(path_app, "mincho.TTE"));
// 実行環境のフォントをすべて登録する
_fonts.RegisterDirectory(path_sys);
_fonts.DefaultFont = _fonts.FindFamilyName("Arial");
// 外字ファイルをフォントにリンクする
foreach (var font in _fonts)
{
switch (font.FontFamilyName)
{
case "MS Gothic":
font.AddEudcFont(eudc_gothic);
break;
case "MS Mincho":
font.AddEudcFont(eudc_mincho);
break;
default:
font.AddEudcFont(eudc_default);
break;
}
}
}
FontCollection GrapeCity.ActiveReports.IFontResolver.GetFonts(string familyName, bool isBold, bool isItalic)
{
var fonts = new FontCollection();
var font = _fonts.FindFamilyName(familyName, isBold, isItalic);
if (font != null) fonts.Add(font);
fonts.Add(_fonts.DefaultFont);
return fonts;
}
}
レポートの描画でFontResolverクラスを有効にする方法は、以下をご参照ください。