Windowsにおける外字フォントは、大きく分けて「ファイル方式」と「リンク方式」の2つが存在します。ActiveReportsのPDFエクスポートは、両方の方式に対応しています。外字フォントを使用するには、レポートをエクスポートする環境に、あらかじめ外字が用意されている必要があります(作成されたPDFファイルの閲覧環境には必要ありません)。どちらの方式の外字を使用するかによって、用意する方法が異なりますので、下記を参照の上、準備を行ってください。
外字以外の常用文字(内字)と外字の文字セットが、1つのフォントファイルに含まれており、通常のフォントと同じように扱うことが可能な方式です。フォントファイルの拡張子は、TTF、およびTTCです。Windows標準のフォントには、このようなファイル方式の外字フォントは用意されていないため、通常はサードパーティ製のフォントを購入し、エクスポートを行うマシンにインストールしてください。インストール後は、ActiveReportsのTextBoxコントロールなどのFontプロパティにそのフォントを設定することで、外字が利用可能になります。
外字文字セットのみが含まれるフォントファイルを、任意のフォントにリンクさせる方法です。フォントファイルの拡張子は「TTE」です。このようなリンク方式の外字フォントは、サードパーティから購入することもできますが、Windowsの外字エディタを使って自分で作成することができます。
サードパーティ製のフォントを購入した場合、エクスポートを行うマシンにインストールし、そのフォントに付属するリンクツールなどを使用して、Windows標準の任意のフォントにリンクさせてください(リンクの仕方については、各フォントメーカーに確認してください)。
Windowsの外字エディタを使って自分で作成した場合、外字エディタの[フォントのリンク]から全てのフォントに対してリンクすることができます。こうすることで、その外字フォントのファイル名は自動的に「EUDC.TTE」となります。EUDC.TTEファイルは、システムのデフォルトリンク外字ファイルです。特定のフォントにリンクさせたい場合には、外字エディタの[フォントのリンク]で任意のフォントを指定してください。
リンク後は、ActiveReportsのTextBoxコントロールなどのFontプロパティに、そのリンクさせたフォントを設定することで、外字が利用できるようになります。
■Webアプリケーションでシステムのデフォルトリンク外字ファイルであるEUDC.TTE以外を使用する場合、あらかじめ以下の準備が必要になりますので注意してください。
この設定はエクスポートするサーバー側で行う必要があります。クライアント側で行う必要はありません。
外字エディタなどのツールから外字フォントをリンクさせた場合、下記のレジストリ(HKEY_CURRENT_USER\EUDC)にそのリンク情報が登録されます。ActiveReportsは、このレジストリ情報を参照します。
HKEY_CURRENT_USER以下の情報は、ユーザー毎に設定されている値です。そのため、実行ユーザーがASPNETアカウント(Windows Server 2003ではNETWORK SERVICE)となるWebアプリケーションでは、これらのレジストリ情報を参照することができません。このような場合は、下記のレジストリ(HKEY_LOCAL_MACHINE\Software\Data Dynamics\EUDC)を作成することで、参照することができます。なお、システムのデフォルトリンク外字ファイル(EUDC.TTE)については、レジストリ(HKEY_USERS\EUDC)にデフォルトで設定されているため、ASPNETなどのアカウントであっても、作成する必要はありません。
以下にWindows XPでの対応例を示します。
(例)保存されたRegファイルの内容コード |
コードのコピー
|
---|---|
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\EUDC] [HKEY_CURRENT_USER\EUDC\932] "SystemDefaultEUDCFont"="C:\\WINDOWS\\FONTS\\EUDC.TTE" "MS ゴシック"="C:\\WINDOWS\\Fonts\\myEudc.TTE" [HKEY_CURRENT_USER\EUDC\936] "SystemDefaultEUDCFont"="EUDC.TTE" [HKEY_CURRENT_USER\EUDC\949] "SystemDefaultEUDCFont"="EUDC.TTE" [HKEY_CURRENT_USER\EUDC\950] "SystemDefaultEUDCFont"="EUDC.TTE" |
(例)変更後のRegファイルの内容コード |
コードのコピー
|
---|---|
Windows Registry Editor Version 5.00 |
PDF形式において外字を表示させるには、フォントを埋め込む必要があります。そのため、NeverEmbedFontsプロパティを使用してフォントを非埋め込みと指定した場合であっても、外字部分だけは別フォントとして埋め込まれます。このように外字は必ず埋め込まれてPDFに出力されるため、外字が存在しないマシン上でPDFファイルを閲覧した場合でも、正しい表示結果を得ることができます。