PDF文書の用紙サイズを拡大・縮小用紙サイズを拡大、縮小します。
PDF文書の全ページの用紙サイズを指定した用紙サイズに拡大または縮小します。これは、PDFの境界設定値の値を変更して、描画される文字の大きさなどをそれに比例して変更することに相当します。例えば、元のPDFの用紙サイズがA4のとき、50%縮小後の用紙サイズはA5となります。文字サイズも比例して小さくなります。
なお、用紙サイズの変更は、印刷するときの用紙の寸法の変更であり、PDFのファイルサイズを増減する処理ではありません。
この例では次の機能を使っています。
package cookbook; import jp.co.antenna.ptl.*; public class ZoomPage { /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 4) { System.out.println("usage: java ZoomPage in-pdf-file out-pdf-file page-to-zoom zooming-ratio"); System.out.println("zooming-ratio : 1.0が等倍です。0.1から10.0までの値を指定してください。"); return; } //zooming-ratioの数値判定 float zoomingRatio = Float.parseFloat(args[3]); if((zoomingRatio < 0.1) || (10.0 < zoomingRatio)) { System.err.println("zooming-ratioは0.1から10.0までの値を指定してください。"); return ; } try (PtlParamInput inputFile = new PtlParamInput(args[0]); PtlParamOutput outputFile = new PtlParamOutput(args[1]); PtlPDFDocument doc = new PtlPDFDocument()) { // PDFファイルをロード doc.load(inputFile); ...【AppendPages.javaと同じ処理のため省略 ・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード ・PtlParamOutputを用いて出力PDF名を指定】... ...【RemovePages.javaと同じ処理のため省略 ・doc.getPages()メソッドを用いてPtlPages pagesにページコンテナを取得 ・ページコンテナが空だった場合にエラーを出力して終了】... int numPages = doc.getPageCount(); System.out.println("ページ数:" + numPages); int pageToZoom = Integer.parseInt(args[2]); //PageToZoomの値を判定する。 if((pageToZoom < 1) ||(numPages < pageToZoom)) { System.err.println("page-to-zoomは、PDFのページ数の範囲で指定してください。"); return; } // ページの取得 // PtlPages.get() のパラメータindexは0が先頭のため、pageToZoomから1引いています。 try (PtlPage page = pages.get(pageToZoom - 1)) { page.zoom(zoomingRatio); } } ...【AppendPages.javaと同じ処理のため省略 ・PtlParamOutputを用いてPtlPDFDocument docの内容を出力 ・PtlException, Exception, Error を catchするエラー処理 ・finally文で"--完了--"と表示する処理】... } }
ZoomPage.java