PDFドキュメントへのフォント埋め込み
Adobe PDFドキュメントにはフォントを埋め込むことができます。
作成時と同じフォントで文字を描画
フォントを埋め込むと、作成時と同じフォントで文字を描画できます。
Linuxなどのフォントがない環境でAdobe PDFドキュメントを利用する場合には、使用するフォントを埋め込むと、作成時と同じフォントで文字を出力することができます。
作成した環境にのみ存在する特殊なフォントを使用した場合にもフォントを埋め込んでおきます。
フォントが埋め込まれなかった文字は、Adobe PDFドキュメントを利用する環境のフォントで文字が描画されるため、作成時とは異なる書体となることがあります。
埋め込むフォントの指定
Adobe PDFドキュメントに埋め込むフォントを指定する時は、レポートライブラリOCXやレポートライブラリ.NETコントロールでは、EmbedFontメソッドを使います。レポートライブラリDLLやレポートライブラリJNIでは、jvSetStringファンクションを使います。
これらのメソッドやファンクションでは、埋め込みたいフォントのみを指定することもできますが、「*」
を使って、帳票の中で使用するすべてのフォントを埋め込むように指定することもできます。
フォントを埋め込むと、Adobe PDFドキュメントのデータサイズが大きくなります。Adobe
PDFドキュメントを利用する環境に必ず存在するフォントは、なるべく埋め込まないようにします。
指定できるフォントはTrue Typeフォントです。 True Type以外のフォントは埋め込むことができません。
埋め込まれるフォントとは
埋め込みフォントを指定すると、Adobe PDFドキュメントには、文字を描画するために必要なフォントサブセットが埋め込まれます。
埋め込みを指定することができるフォントは以下のものです。
1.フォーム中の固定文字と固定グラフで出力される文字のフォント
2.フォーム中のテキストフィールド・グリッドフィールド・グラフフィールドで出力される文字
のフォント
3.レポートライブラリの文字描画機能で出力される文字のフォント
4.レポートライブラリのグラフ描画機能で出力される文字のフォント
埋め込むフォントを個別に指定した場合、1から4の中に、埋め込みフォントとして指定されなかったフォントがあると、そのフォントのフォントサブセットは埋め込まれません。
フォントの埋め込みエラー
埋め込むフォントファイルが実行環境になかったり、True Type以外のフォントを指定したりするとエラーが発生します。
エラーの発生場所は次の通りです。
1.埋め込むフォントを個別に指定した場合
EmbedFontやjvSetString で、フォント名を一つ一つ個別に指定した時には、問題となるフォントを指定したEmbedFontやjvSetString
の実行時にエラーが発生します。
2.すべてのフォントを指定した場合
EmbedFontやjvSetString で 、「*」 を使ってすべてのフォントを指定した時には、次の箇所でエラーが発生します。
@フォーム中に問題となるフォントがあった時
DrawForm、jvDrawForm、jvDrawSection
実行時にエラーが発生します。
Aレポートライブラリのフォント設定機能で指定したフォントに問題があった時
FontName、jvSetFont
を使ってフォントを設定する時にエラーが発生します。
Bレポートライブラリのグラフ描画機能で指定したフォントに問題があった時
DrawGraph、jvDrawGraph
実行時にエラーが発生します。
エラーフォント名の取得
エラー原因となったフォント名を取得することができます。
1.レポートライブラリOCX、レポートライブラリ.NETコントロール
エラーが発生した時のエラーメッセージの中に、エラー原因のフォント名が入っています。
2.レポートライブラリDLL、レポートライブラリJNI
エラーが発生した直後に、jvGetString
を使ってエラー原因のフォント名を取得することができます。
埋め込み文字コードエラー
描画する文字列中に、フォントファイルの中にフォントサブセットがない特殊な文字コードが使われている場合には、その文字を埋め込む時にエラーが発生します。エラーの発生場所は次の通りです。
1.フォームの固定文字・固定グラフ・テキストフィールド・グリッドフィールド・グラフフィールドで出力される文字列の中に問題となる文字があった時
DrawForm、jvDrawForm、jvDrawSection 実行時にエラーが発生します。
2.レポートライブラリの文字描画機能で描画する文字列中に問題となる文字があった時
DrawText、jvDrawText、jvDrawTextW
実行時にエラーが発生します。
3.レポートライブラリのグラフ描画機能で描画する文字列中に問題となる文字があった時
DrawGraph、jvDrawGraph 実行時にエラーが発生します。
エラー文字コードの取得
エラー原因となった文字コードを取得することができます。
1.レポートライブラリOCX、レポートライブラリ.NETコントロール
エラーが発生した時のエラーメッセージの中に、エラー原因の文字コードが表示されます。
2.レポートライブラリDLL、レポートライブラリJNI
エラーが発生した直後に、jvGetLong
を使って問題となった文字コードを取得することができます。