
請求書など帳票PDFの指定位置に文字列を記入します。
帳票の記入枠を配置矩形で指定します。
各枠に入力したい文字列を指定します。
package cookbook;
import jp.co.antenna.ptl.*;
public class AddTextOnReceipt{
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 8)
{
System.out.println("usage: java AddTextOnReceipt in-pdf-file out-pdf-file company-name postal-code adress1 adress2 phone-number fax-number");
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 = new PtlRect();// 出力矩形の設定
PtlParamFont font = new PtlParamFont();// フォント
PtlParamWriteString writeStringParam = new PtlParamWriteString()) // 文字描画のパラメータクラス。今回は何も設定しない。
{
String companyName = args[2];
String postalCode = args[3];
String adress = args[4];
String adress2 = args[5];
String phoneNumber = args[6];
String faxNumber = args[7];
font.setName("MS-Gothic"); //フォントの設定
// 社名の記入
font.setSize(12.0f);
writeStringParam.setFont(font);
setRect(outputRect, 130, 58, 200, 65);
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_BOTTOM_LEFT, companyName, writeStringParam);
// 郵便番号記入
font.setSize(10.0f);
setRect(outputRect, 129, 50.5f, 200, 58);
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_LEFT, postalCode, writeStringParam);
// 住所記入1
font.setSize(12.0f);
setRect(outputRect, 125, 45, 200, 50.5f);
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_BOTTOM_LEFT, adress, writeStringParam);
// 住所記入2
setRect(outputRect, 125, 40, 200, 45);
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_TOP_LEFT, adress2, writeStringParam);
// 電話番号
font.setSize(10.0f);
setRect(outputRect, 145, 31.5f, 200, 38);
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_TOP_LEFT, phoneNumber, writeStringParam);
// FAX番号
setRect(outputRect, 145, 24, 200, 31.5f);
content.writeString(outputRect, PtlContent.ALIGN.ALIGN_TOP_LEFT, faxNumber, writeStringParam);
}
}
...【AppendPages.javaと同じ処理のため省略
・PtlParamOutputを用いてPtlPDFDocument docの内容を出力
・PtlException, Exception, Error を catchするエラー処理
・finally文で"--完了--"と表示する処理】...
}
public static PtlRect setRect(PtlRect outputRect, float left, float bottom, float right, float top)throws PtlException, Exception, Error{
outputRect.setLeft(left);
outputRect.setBottom(bottom);
outputRect.setRight(right);
outputRect.setTop(top);
return outputRect;
}
}
AddTextOnReceipt.java
C:\samples>java cookbook.AddTextOnReceipt usage: java AddTextOnReceipt in-pdf-file out-pdf-file company-name postal-code adress1 adress2 phone-number fax-number C:\samples>java cookbook.AddTextOnReceipt form.pdf form-out.pdf アンテナハウス株式会社 103-0004 東京都中央区東日本橋2丁目1番6号 東日本橋藤和ビル 03-5829-9021 03-5829-9024 -- 完了 --
PDF形式の領収書(左)にテキストを追加すると図(右)のようになります。
