
PDFに書き込む文字列のフォント属性を指定します。
書き込み先PDF文書とそのページ位置、配置矩形、配置基準、書き込みしたい文字列の指定方法は「2.1.1 本文テキストの追加」を参照してください。
文字列に指定できるフォント属性は次のとおりです。
| パラメータ | 説明 |
|---|---|
| WEIGHT_EXTRALIGHT | エクストラライト |
| WEIGHT_LIGHT | ライト |
| WEIGHT_NORMAL | ノーマル |
| WEIGHT_MEDIUM | ミディアム |
| WEIGHT_SEMIBOLD | セミボールド |
| WEIGHT_BOLD | ボールド |
| WEIGHT_EXTRABOLD | エクストラボールド |
| WEIGHT_HEAVY | ヘビー |
この例では主に次の機能を使っています。
package cookbook;
import jp.co.antenna.ptl.*;
public class AddTextSetFont {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 7)
{
System.out.println("usage: java AddTextSetFont in-pdf-file out-pdf-file font-family font-size set-embed set-italic set-weight");
System.out.println("set-embed, set-italicは trueかfalseで指定してください。");
return;
}
String fontFamily = args[2];
float fontSize = Float.parseFloat(args[3]);
String setEmbed = args[4];
boolean embedOrNot;
String setItalic = args[5];
boolean italicOrNot;
String fontWeight = args[6];
//setEmbedの判定
switch(setEmbed)
{
case "true":
embedOrNot = true;
break;
case "false":
embedOrNot = false;
break;
default:
System.err.println("set-embedは trueかfalseで指定してください。");
return;
}
//setItalicの判定
switch(setItalic)
{
case "true":
italicOrNot = true;
break;
case "false":
italicOrNot = false;
break;
default:
System.err.println("set-italicは trueかfalseで指定してください。");
return;
}
...【AppendPages.javaと同じ処理のため省略
・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード
・PtlParamOutputを用いて出力PDF名を指定】...
...【RemovePages.javaと同じ処理のため省略
・doc.getPages()メソッドを用いてPtlPages pagesにページコンテナを取得
・ページコンテナが空だった場合にエラーを出力して終了】...
try (PtlPage page = pages.get(0); // ページの取得(先頭ページを取得)
PtlContent content = page.getContent(); // ページコンテントの取得
PtlRect outputRect = page.getViewBox(); // 出力矩形の設定。(ページの大きさを得るためにViewBoxを取得する)
PtlParamWriteString writeStringParam = new PtlParamWriteString(); // 文字描画のパラメータクラス。
PtlParamFont font = new PtlParamFont()) //フォント指定に使うパラメータクラス
{
// フォントの設定
// フォントファミリー名
font.setName(fontFamily);
// フォントのサイズ(ポイント)
font.setSize(fontSize);
// フォント埋め込みの可否
font.setEmbed(embedOrNot);
// イタリックか否か
font.setItalic(italicOrNot);
// フォントウエイト
try{
font.setWeight(PtlParamFont.WEIGHT.valueOf(fontWeight));
}catch (IllegalArgumentException ex){//PtlParamFont.WEIGHTの指定が誤っていた場合のエラーメッセージ
System.out.println(ex.getMessage());
System.out.println("ERROR : set-weightにはPtlParamFont.WEIGHTに含まれる名前を指定してください。");
ex.printStackTrace();
}
// フォントをパラメータクラスへ設定
writeStringParam.setFont(font);
// 文字列出力 (中央に文字列を作成)
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_CENTER,
"writeString Test : Set Font", writeStringParam);
}
}
...【AppendPages.javaと同じ処理のため省略
・PtlParamOutputを用いてPtlPDFDocument docの内容を出力
・PtlException, Exception, Error を catchするエラー処理
・finally文で"--完了--"と表示する処理】...
}
}
AddTextSetFont.java
C:\samples>java cookbook.AddTextSetFont usage: java AddTextSetFont in-pdf-file out-pdf-file font-family font-size set-embed set-italic set-weight set-embed, set-italicは trueかfalseで指定してください。 C:\samples>java cookbook.AddTextSetFont blankPage.pdf addTextfont.pdf "Century Gothic" 24 true false WEIGHT_HEAVY -- 完了 --
この例ではフォントにCentury Gothic、フォントサイズは24ポイント、フォントの埋め込み「あり」を指定しています。
