GrapeCity ActiveReports for .NET 16.0J
カスタムフォント設定(PDFフォントファクトリ)
ActiveReportsユーザーガイド > エクスポート > エクスポートフィルタ > フォント解決方法(GDI) > カスタムフォント設定(PDFフォントファクトリ)

通常、Medium信頼レベル環境やAzure WebアプリケーションでPDFエクスポートフィルタおよび描画拡張機能を使用する場合、セキュリティ制限によりActiveReportsはシステムフォントフォルダにアクセスすることはできません。このため、PDFファイルにフォントを埋め込むことができず、ある特定のフォントにしか存在しない特殊なグリフや非ASCII文字をレポートで使用している場合は、配布先の環境でPDFファイルを閲覧した際に正しく表示されません。

PDFフォントファクトリは、ActiveReportsからフォントが格納されている任意のフォルダへの参照方法を設定することで、Medium信頼レベル環境でもPDFへ任意のフォントを埋め込むことを可能にする機能です。Medium信頼レベル環境においてPDFファイルにフォントを埋め込むには、web.configファイルにフォントファクトリを設定する必要があります。

メモ:

フォントファクトリセクショングループの追加

以下のサンプルコードを、web.configファイルの<configSections>タグ内に貼り付けます。

XMLコード(web.configファイルのconfigSectionsタグ内に貼り付けます)
コードのコピー
<configuration>
  <configSections>
    <sectionGroup name="ActiveReports.PdfExport">
      <section name="FontFactory"

      type="GrapeCity.ActiveReports.Export.Pdf.Section.FontFactorySectionHandler,GrapeCity.ActiveReports.Export.Pdf"
      requirePermission="false" />
    </sectionGroup>
  </configSections>
<configuration>
                        
<ActiveReports.PdfExport>
  <FontFactory Mode="File">
    <AddFolder Path="C:/MyFonts" Recurse="true"/>

フォントファクトリの設定

フォントファクトリで参照するフォントが格納されているフォルダや、フォントを設定します。以下のサンプルコードを、web.configファイルの<configSections>タグと<appSettings>タグの間に貼り付けます。

メモ: 使用するフォントに合わせて適宜設定を変更してください。以下のサンプルコードの場合は、「Fonts」フォルダを作成し、必要なフォントファイル(arial.ttf、tahoma.ttf、msgothic.ttc、simsun.ttc、gulim.ttc、mingliu.ttc、micross.ttf)をコピーしてください。

XMLコード(web.configファイルの<configSections>タグと<appSettings>タグの間に貼り付けます。

コードのコピー
<ActiveReports.PdfExport>
    <FontFactory Mode="File">
        <AddFolder VirtualPath="~/Fonts" Recurse="true"/>
        <Substitute Font="Helv" To="Helvetica"/>
        <SetFallbackFont Font="Arial"/>
 
        <!-- font link nodes -->
        <AddFontLink Font="Arial" List="SimSun,gulim,PMingLiU"/>
        <AddFontLink Font="Tahoma" List="MS UI Gothic,SimSun,gulim,PMingLiU"/>
        <AddFontLink Font="MS UI Gothic" List="SimSun,gulim,PMingLiU,Microsoft Sans Serif" IsDefault="true"/>

    <!-- EUDC link nodes -->
           <DefaultEudcFont File="EUDC.tte"/>
           <AddEudcFont Font="MS UI Gothic" File="myEUDC1.tte"/>
           <AddEudcFont Font="メイリオ" File="myEUDC2.tte"/>
    </FontFactory>
</ActiveReports.PdfExport>
メモ: Azureワーカーロールプロジェクトの場合は、上記のコードのような仮想パスではなく、次のように絶対パスを使用します。<AddFolder Path="~/Fonts" Recurse="true"/>

上記コードのように、web.configファイルを編集することにより、PDFに外字(エンドユーザー定義文字、EUDC)を埋め込むことができます。また、既定の外字ファイル(EUDC.TTE)を、AddFolderで指定した任意の場所に配置できます。  

利用可能なプロパティ

EUDCの構成要素

要素 説明
DefaultEUDCFont 既定のフォント設定を含む、レジストリのSystemDefaultEudcFontエントリのようなノードです。
DefaultEUDCFont File 既定のファイル名を指定します。
AddEudcFont EUDCファイルをフォント名に関連付けるノードです。このノードを複数回追加するこができます。
AddEudcFont Font  フォント名を指定します。 
AddEudcFont File AddEudcFontフォントに関連付いているEUDCファイルの名前を指定します。

FontFactory

説明: メインのFontFactoryノードです。

属性

要素 説明
Mode Mode属性をFileに設定すると、ファイルベースのファクトリーが使用されます(File以外は使用することができません)。すなわち、Windows GDIファクトリーの属性が削除されます。この属性を指定しない場合、通常のWindowsのシステムフォントフォルダに格納されているフォントを参照します(Medium信頼レベル環境では、ActiveReportsは通常のWindowsのシステムフォントフォルダを参照することができません)。

子要素

なし。

親要素

要素 説明
ActiveReports.PdfExport PdfExport名前空間(PDFエクスポート、ドキュメントオプション、セキュリティクラス)を含むアセンブリ。

<FontFactory Mode="File">

AddFolder

説明: 指定したフォルダ内にあるすべてのTrueTypeフォント(.ttc、.ttf)を使用します。

属性

要素 説明
Path フォルダの絶対パスを指定します。
VirtualPath フォルダの仮想パスを指定します。
Recurse Trueに設定すると、サブフォルダ以下を読み込みます。Falseに設定すると、サブフォルダ以下は読み込まれません。

子要素

なし。

親要素

要素 説明
FontFactory メインのFontFactoryノードです。

<AddFolder VirtualPath="~/Fonts" Recurse="true"/>

Substitute(*1)

説明: フォントに任意の別名を設定し、フォントファイルへマッピングします。

属性

要素 説明
Font 任意のフォントの名(例 Helv)を指定します。
To フォントの正式名(例 Helvetica)を指定します。

子要素

なし。

親要素

要素 説明
FontFactory メインのFontFactoryノードです。

 <Substitute Font="Helv" To="Helvetica"/>

SetFallbackFont(*1)(Professionalのみ)

説明: 次のいずれかの場合に使用するフォントを設定します。

属性

要素 説明
Font グリフが見つからない場合に使用するフォント名を指定します。

子要素

なし。

親要素

要素 説明
FontFactory メインのFontFactoryノードです。

 <SetFallbackFont Font="Arial"/> 

AddFontLink(*1)(Professionalのみ)

説明: Professionalエディションでは、CJKグリフが追加でサポートされています。指定したフォントに出力対象の字体(グリフ)が見つからない場合に使用するフォントを指定します。

属性

要素 説明
Font レポートで使用されているフォントを指定します。
List グリフが見つからない場合に使用するフォントのリストをカンマ区切りで指定します。
注意: AddFolderで指定したフォルダに代替フォントファイルが存在しない場合は、リンク先の字体(グリフ)は出力されません。
IsDefault Trueに設定すると、固有のフォントリンクを持たないすべてのフォントに対して、指定したリストが使用されます。

子要素

なし。

親要素

要素 説明
FontFactory メインのFontFactoryノードです。

 <AddFontLink Font="Tahoma" List="MS UI Gothic,SimSun,gulim,PMingLiU"/>

メモ:

*1: フォントの検索順は以下の通りです。

  1. コントロールで指定されたフォント。
  2. Substitute設定でマップされたフォント。
  3. AddFontLink設定で指定されたフォント(Professionalのみ)。
  4. SetFallbackFont設定で指定されたフォント(Professionalのみ)。

SetFallbackFont、およびAddFontLinkについては、「PDFマルチランゲージ」における「システムフォントリンク」、および「FontFallbackプロパティ」と同様の機能となります。詳細については、「PDFマルチランゲージ」を参照してください。

 

関連トピック