請求書など帳票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形式の領収書(左)にテキストを追加すると図(右)のようになります。