CookBook1 基礎編

1-8フォント名を変更する

使用するフォントを変更してみましょう。
xCustomerNameフィールドのフォントをTrueTypeフォントのMSGothic/太字(BOLD)に、xPhoneNoフィールドのフォントをType1フォントのクーリエに変更していきます。

【利用API】

クラス:Field
メソッド:setFontName(String fontName)

【引数】

fontName : フォント名

フォント名は、フォントフォーマットによって指定方法が若干異なります。コラムを参考にしてください。

【用途】

取得したフィールドのフォント名を変更します。

扱えるフォントについて

本ライブラリでは以下に示す2種類のフォントフォーマットのみをサポートしています。

  • PostScriptType1形式(*.ptb)
  • TrueType形式(*.ttf,*.ttc)

【PostScriptType1形式について】

英数文字は、単純フォント、日本語等のCJK文字は複合フォントとして扱われます。
単純フォントは、PDF仕様において「標準フォント」とされている以下の14種類のフォントを利用できます。

COURIER, COURIER_BOLD, COURIER_OBLIQUE COURIER_BOLDOBLIQUE, HELVETICA, HELVETICA_BOLD HELVETICA_OBLIQUE, HELVETICA_BOLDOBLIQUE TIMES_ROMAN, TIMES_BOLD, TIMES_ITALIC, TIMES_BOLDITALIC,SYMBOL, ZAPFDINGBATS

以上の単純フォントは、Type1Fontクラスのクラス変数として定義しているString型の実数値を利用して、フォント指定を行なうことができます。

本ライブラリで扱えるPostscript形式の複合フォントは、以下に示す日本語フォントのみです。
いずれも、AcrobatおよびAdobeReaderの各バージョンにバンドルで採用されている日本語フォントです。
このことから、日本語PostScriptフォントを利用したフォームフィールドを設計する場合は、Acrobatのバージョン毎に選択できるフォントが異なることに気づいてください。

フォント名ポストスクリプト英名対応するAcrobatのバージョン
平成角ゴシックHeiseiKakuGo-W56.0
平成明朝HeiseiMin-W36.0
小塚ゴシックPro MKozGoPro-Medium7.0
小塚明朝Pro-VI RKozMinProVI-Regular7.0
小塚ゴシックPro-VI MKozGoProVI-Medium8.0
小塚明朝Pro-VI RKozMinProVI-Regular8.0
小塚ゴシック Pr6N MKozGoPr6N-Medium9.0 / X
小塚明朝 Pr6N RKozMinPr6N-Regular9.0 / X
Type1フォントを利用して、フォントの埋め込み機能を利用することはできません。
フォント埋め込みPDF文書を作成する場合は、必ずTrueTypeフォントを利用してください。

【TrueTypeフォント形式について】

所定の手続きにのっとって、フォントのファイルを登録することで、(*.ttf,*.ttc)形式のフォントを使用できます。
CookBookで使用するTrueTypeフォント手続きの詳細については、「1-13-3 付録-TrueTypeフォントを登録する」を参照してください。
主なTrueTypeフォントのポストスクリプト英名を以下に示します。

フォント名ポストスクリプト英名
MS ゴシックMSGothic
MS PゴシックMSPGothic
MS UIゴシックMSUIGothic
MS 明朝MSMincho
MS P明朝MSPMincho

【フォントのスタイル指定について】

フォントのスタイル指定は、TrueTypeフォントでのみ可能です。
PostScriptフォントではスタイルを指定できません。
以下のように”フォント名,スタイル名”としてフォント名を指定することで、スタイル指定を行ないます。
setFontName("(TrueTypeFontName),(Italic | Bold-Italic | Bold)")

記述例

<1>~TrueTypeフォントの設定~
//フィールドを取得
Field field = report.getField("xCustomerName");
//フォント名をMSGothicの太字に変更する。
field.setFontName("MSGothic,Bold");
//フィールドに文字列をセットする。
report.putFieldData(field,"山田 太郎");

<2>~Type1フォントの設定~
//フィールドを取得
Field field = report.getField("xPhoneNo");
//フォント名をType1Fontのクーリエに変更する。
field.setFontName(Type1Font.COURIER);
//フィールドに文字列をセットする。
report.putFieldData(field,"03-1234-5678");

記述例を参考にして、フィールドのフォント名を変更するコードを追記してください。

追記されたコードはこちらをご覧ください。
◎javaファイル:cookbook1/chapter1-8/OrderFormFin.java

コードの追記が終了したら、プログラムを実行し生成されたPDF帳票を開いてみましょう。
指定したフィールドのフォントが変更されていることを確認してください。
◎出力されたPDF帳票:cookbook1/chapter1-8/OrderFormFin.pdf

テキストフィールドのプロパティを変更してみよう

"テキストフィールドのプロパティ"ダイアログでは、"表示方法"タブの"フォント"項目で、フォント名を決定できます。
デフォルトの設定はAcrobatのバージョンにより異なります。
"フォント"を変更すると、上記で説明したAPI[setFontName()]と同様の制御ができます。
全プロパティの設定については、「テンプレートの作り方」を参考にしてください。

PAGE TOP