PDF文書のページを移動PDF文書の指定したページ範囲を指定した位置に移動します。
PDF文書の中の移動対象とするページ範囲と、その範囲を移動する位置を指定します。
PDF文書を読み込み、指定した範囲と移動先が妥当かどうかを確認します。
妥当であればPDF文書の中の指定範囲を移動します。
結果のPDF文書を保存します。
この例では次の機能を使っています。
package cookbook; import jp.co.antenna.ptl.*; public class MovePages { /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 5) { System.out.println("usage: java MovePages in-pdf-file out-pdf-file move-start-page move-end-page where-to-move"); System.out.println("move-start-page から move-end-page までの範囲を対象に、where-to-move の後ろへページを移動させます。"); System.out.println("1ページ目より前へ移動させたい場合は where-to-move に0を指定してください。"); return; } int moveStart = Integer.parseInt(args[2]); int moveEnd = Integer.parseInt(args[3]); if((moveStart < 1)||(moveEnd < 1)) { System.err.println("move-start-page, move-end-pageは正の値を入力してください。"); return; } ...【AppendPages.javaと同じ処理のため省略 ・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード ・PtlParamOutputを用いて出力PDF名を指定】... int whereToMove = Integer.parseInt(args[4]); if((whereToMove < 0)||(whereToMove > doc.getPageCount())) { System.err.println("where-to-moveは0からPDFのページ数までを指定してください。"); return; } ...【RemovePages.javaと同じ処理のため省略 ・doc.getPages()メソッドを用いてPtlPages pagesにページコンテナを取得 ・ページコンテナが空だった場合にエラーを出力して終了】... //移動ページ数の取得 int movingPages = moveEnd - moveStart + 1; if(movingPages < 1) { System.err.println("move-start-pageより小さいmove-end-pageを指定することはできません。"); return; } if((moveStart <= whereToMove) && (whereToMove < moveEnd)) { System.err.println("where-to-moveは、move-start-pageとmove-end-pageの間で指定することはできません。"); return; } // ページの追加 if(whereToMove == doc.getPageCount()) //最終ページの後ろに挿入指定の場合 { pages.move(PtlPages.INSERT_LAST, moveStart - 1, movingPages); } else //それ以外 { // PtlPages.move() のパラメータfromNumは0スタートのため、1引いています。 pages.move(whereToMove, moveStart - 1, movingPages); } ...【AppendPages.javaと同じ処理のため省略 ・PtlParamOutputを用いてPtlPDFDocument docの内容を出力 ・PtlException, Exception, Error を catchするエラー処理 ・finally文で"--完了--"と表示する処理】... } }
MovePages.java