
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
C:\samples>java cookbook.MovePages usage: java MovePages in-pdf-file out-pdf-file move-start-page move-end-page where-to-move move-start-page から move-end-page までの範囲を対象に、where-to-move の後ろへページを移動させます。 1ページ目より前へ移動させたい場合は where-to-move に0を指定してください。 C:\samples>java cookbook.MovePages testPages_10.pdf testPages-moveP6-8to2.pdf 6 8 2 -- 完了 --
6~8ページ目を2ページ目の後ろに移動した例。