通常、Medium信頼レベル環境やAzure WebアプリケーションでPDFエクスポートフィルタおよび描画拡張機能を使用する場合、セキュリティ制限によりActiveReportsはシステムフォントフォルダにアクセスすることはできません。このため、PDFファイルにフォントを埋め込むことができず、ある特定のフォントにしか存在しない特殊なグリフや非ASCII文字をレポートで使用している場合は、配布先の環境でPDFファイルを閲覧した際に正しく表示されません。
PDFフォントファクトリは、ActiveReportsからフォントが格納されている任意のフォルダへの参照方法を設定することで、Medium信頼レベル環境でもPDFへ任意のフォントを埋め込むことを可能にする機能です。Medium信頼レベル環境においてPDFファイルにフォントを埋め込むには、web.configファイルにフォントファクトリを設定する必要があります。
以下のサンプルコードを、web.configファイルの<configSections>タグ内に貼り付けます。
XMLコード(web.configファイルのconfigSectionsタグ内に貼り付けます)※バージョン番号(Xで記された箇所)を適宜修正してください |
コードのコピー
|
---|---|
<sectionGroup name="ActiveReports.PdfExport"> <section name="FontFactory" type="GrapeCity.ActiveReports.Web.FontFactorySectionHandler, GrapeCity.ActiveReports.Web, Version=XX.X.XXXX.X, Culture=neutral, PublicKeyToken=cc4967777c49a3ff" requirePermission="false" /> </sectionGroup> |
フォントファクトリで参照するフォントが格納されているフォルダや、フォントを設定します。以下のサンプルコードを、web.configファイルの<configSections>タグと<appSettings>タグの間に貼り付けます。
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> |
上記コードのように、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 |
グリフが見つからない場合に使用するフォントのリストをカンマ区切りで指定します。
|
||
IsDefault | Trueに設定すると、固有のフォントリンクを持たないすべてのフォントに対して、指定したリストが使用されます。 |
なし。
要素 | 説明 |
---|---|
FontFactory | メインのFontFactoryノードです。 |
<AddFontLink Font="Tahoma" List="MS UI Gothic,SimSun,gulim,PMingLiU"/>
メモ:
*1: フォントの検索順は以下の通りです。
SetFallbackFont、およびAddFontLinkについては、「PDFマルチランゲージ」における「システムフォントリンク」、および「FontFallbackプロパティ」と同様の機能となります。詳細については、「PDFマルチランゲージ」を参照してください。