フォントについて

RapidReportでは、帳票内で利用されるフォントを指定するには、 [フォント]>[フォント名]プロパティにフォントの種類を表すキーを指定します。 デフォルトで用意されているキーは[gothic]、[mincho]の2つです。 それぞれのキーに対応付けられる実際のフォントは、 各レンダラのSettingオブジェクトが持つFontMapというハッシュに定義されています。

各FontMapのデフォルトの内容を以下に示します。

レンダラ フォントのキー フォント
PDFレンダラ gothic HeiseiKakuGo-W5
mincho HeiseiMin-W3
Excel(XLS/XLSX)
レンダラ
gothic MS ゴシック
mincho MS 明朝
直接印刷・プレビュー gothic MS ゴシック
mincho MS 明朝

利用するレンダラのFontMapに要素を追加することで、 任意のフォントを利用することが可能になります。

PDFレンダラでのフォント設定

PDFレンダラにおいてデフォルトで設定されているHeiseiKakuGo-W5とHeiseiMin-W3は、 論理的なフォントであり、出力されるPDFには埋め込まれません。 AdobeReaderなどのPDFビューアが物理フォントに置き換えて表示します。 (小塚ゴシックPr6N、小塚明朝Pr6Nというプロポーショナルフォントが用いられるようです)

任意のフォントを利用するには、BaseFontオブジェクトを作成してFontMapに設定します。 例えば、[gothic]と[mincho]にそれぞれ[MSゴシック]と[MS明朝]を埋め込みフォントとして割り当てるには、 以下のように書きます。 (システムのフォントフォルダのパスが"C:\Windows\Fonts"という前提とします)

  // C#
  PdfRendererSetting setting = new PdfRendererSetting();
  setting.FontMap["gothic"] = BaseFont.CreateFont("C:\\Windows\\Fonts\\msgothic.ttc,0",
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
  setting.FontMap["mincho"] = BaseFont.CreateFont("C:\\Windows\\Fonts\\msmincho.ttc,0",
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED);  
  PdfRenderer renderer = new PdfRenderer(stream, setting);
  ' VisualBasic
  Dim setting As PdfRendererSetting = New PdfRendererSetting()
  setting.FontMap("gothic") = BaseFont.CreateFont("C:\Windows\Fonts\msgothic.ttc,0", _
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
  setting.FontMap("mincho") = BaseFont.CreateFont("C:\Windows\Fonts\msmincho.ttc,0", _
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED)
  Dim renderer PdfRenderer = New PdfRenderer(stream, setting)
  // Java
  PdfRendererSetting setting = new PdfRendererSetting(); 
  setting.fontMap.put("gothic", BaseFont.createFont("C:\\Windows\\Fonts\\msgothic.ttc,0",
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED));
  setting.fontMap.put("mincho", BaseFont.createFont("C:\\Windows\\Fonts\\msmincho.ttc,0",
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED));
  PdfRenderer renderer = new PdfRenderer(stream, setting);

[gothic]と[mincho]以外のキーも利用できます。 例えば、[meiryo]というキーでメイリオフォントを利用するには以下のように書きます。

  // C#
  PdfRendererSetting setting = new PdfRendererSetting();
  setting.FontMap.Add("meiryo", BaseFont.CreateFont("C:\\Windows\\Fonts\\meiryo.ttc,0", _
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED));
  PdfRenderer renderer = new PdfRenderer(stream, setting);
  ' VisualBasic
  Dim setting As PdfRendererSetting = New PdfRendererSetting()
  setting.FontMap.Add("meiryo", BaseFont.CreateFont("C:\Windows\Fonts\meiryo.ttc,0", _
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED))
  Dim renderer PdfRenderer = New PdfRenderer(stream, setting)
  // Java
  PdfRendererSetting setting = new PdfRendererSetting(); 
  setting.fontMap.put("meiryo", BaseFont.createFont("C:\\Windows\\Fonts\\meiryo.ttc,0", _
    BaseFont.IDENTITY_H, BaseFont.EMBEDDED));
  PdfRenderer renderer = new PdfRenderer(stream, setting);

BaseFont.CreateFontメソッドの詳細については、iTextまたはiTextSharpのドキュメントを参照してください。

PDFレンダラで外字を利用する方法については「レンダラの仕様」をご覧ください。

埋め込みをせずにMSゴシック/MS明朝を利用する

[MSゴシック]と[MS明朝]は、以下のように書くことで、埋め込まずに利用することができます。 これによって、ファイルサイズを縮小することができますが、 ファイルを開く際の環境にこれらのフォントがインストールされていない場合は、表示が崩れます。

  // C#
  PdfRendererSetting setting = new PdfRendererSetting();
  setting.FontMap["gothic"] = BaseFont.CreateFont("MS-Gothic", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED);
  setting.FontMap["mincho"] = BaseFont.CreateFont("MS-Mincho", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED);
  PdfRenderer renderer = new PdfRenderer(stream, setting);
  ' VisualBasic
  Dim setting As PdfRendererSetting = New PdfRendererSetting()
  setting.FontMap("gothic") = BaseFont.CreateFont("MS-Gothic", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED)
  setting.FontMap("mincho") = BaseFont.CreateFont("MS-Mincho", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED)
  Dim renderer PdfRenderer = New PdfRenderer(stream, setting)
  // Java
  PdfRendererSetting setting = new PdfRendererSetting(); 
  setting.fontMap.put("gothic", BaseFont.createFont("MS-Gothic", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED));
  setting.fontMap.put("mincho", BaseFont.createFont("MS-Mincho", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED));
  PdfRenderer renderer = new PdfRenderer(stream, setting);

外字の埋め込みについて

外字のフォントを埋め込むことによって、PDF内で外字を利用できるようになります。 詳しくは「レンダラの仕様」をご覧ください。

XLSレンダラでのフォント設定

XLSレンダラで、[meiryo]というキーでメイリオフォントを利用する例を以下に示します。

  // C#
  XlsRendererSetting setting = new XlsRendererSetting();
  setting.FontMap.Add("meiryo", "メイリオ");
  XlsRenderer renderer = new XlsRenderer(workbook, setting);
  ' VisualBasic
  Dim setting As New XlsRendererSetting
  setting.FontMap.Add("meiryo", "メイリオ")
  Dim renderer As New XlsRenderer(workbook, setting)
  // Java
  XlsRendererSetting setting = new XlsRendererSetting();
  setting.fontMap.put("meiryo", "メイリオ");
  XlsRenderer renderer = new XlsRenderer(workBook, setting);

直接印刷・プレビューでのフォント設定

.NETで直接印刷・プレビューを行うPrinterオブジェクトに、 [meiryo]というキーでメイリオフォントを利用する例を以下に示します。

  // C#
  GdiRendererSetting setting = new GdiRendererSetting();
  setting.FontMap.Add("meiryo", "メイリオ");
  Printer printer = new Printer(pages, setting);  
  ' VisualBasic
  Dim setting As New GdiRendererSetting
  setting.FontMap.Add("meiryo", "メイリオ")
  Dim printer As New Printer(pages, setting)  

レポートデザイナでのフォント設定

レポートデザイナで任意のフォントを選択可能にするには、 レポートデザイナの実行バイナリと同じ場所にある設定ファイル[setting.json]に、fontプロパティを追加します (extフォルダ内に任意のJSONファイルを作成して記述する方法でも設定可能です)。

例えば、[meiryo]というキーでメイリオフォントを利用する場合は、以下の赤字の部分を追加します。

  {
    font: [
      {key:"meiryo", font_name:"メイリオ"}
    ]
  }

デザイナを実行する環境に当該のフォントがインストールされていない場合は、 font_nameは省略することができます。省略した場合は[MS ゴシック]が利用されます。

複数のフォントを追加する場合はカンマ区切りで書きます。

  {
    font: [
      {key:"key1", font_name:"フォント1"},
      {key:"key2", font_name:"フォント2"},
      ...
    ]
  }

なお、設定ファイルが存在しない場合は作成してください。 ファイル全体は中カッコで囲む必要があり、 また、エンコーディングをUTF-8とする必要があります。

[setting.json]の書き方についての完全なドキュメントは「レポートデザイナの設定」にあります。