1.1.6 白紙ページの挿入

PDFCookBookアートボード 5

狙い・効果

PDF文書に白紙ページを追加して総ページ数を偶数にします。

処理の概要

PDF文書の総ページ数を調べます。

総ページ数が奇数のとき、最後に空白の1ページを追加します。総ページ数が偶数のときは何もしません。

『PDF Tool API』の主な機能

この例では次の機能を使っています。

プログラム例

package cookbook;

import jp.co.antenna.ptl.*;

public class MakeEvenPage {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length < 2)
        {
            System.out.println("usage: java MakeEvenPage in-pdf-file out-pdf-file");
            return;
        }


        ...【AppendPages.javaと同じ処理のため省略
             ・PtlParamInputを用いてPtlPDFDocument docに入力PDFをロード
             ・PtlParamOutputを用いて出力PDF名を指定】...

            //ページ数を取得
            int pageCount = doc.getPageCount();
            System.out.println("ページ数:"+ pageCount);

            if(pageCount % 2 == 0)
            {
                System.out.println("ページ数は偶数です。このままの内容で出力します。");
            }
            else
            {
                System.out.println("ページ数は奇数です。空白ページを追加して出力します。");
                try (PtlPages pages = doc.getPages();               //ページコンテナの取得
                     PtlPage page = pages.get(0);                   //PDFの先頭ページのページオブジェクトを取得
                     PtlSize sizeOfPage = page.getSize();            //先頭ページのサイズを取得
                     PtlPage blancPage = new PtlPage();              //作成予定のページオブジェクトを作成
                     PtlSize sizeOfBlancPage = blancPage.getSize())  //サイズを取得
                {
                    // 追加する空白ページを作成するために、先頭ページのサイズに合わせます。
                    sizeOfBlancPage.setHeight(sizeOfPage.getHeight());
                    sizeOfBlancPage.setWidth(sizeOfPage.getHeight());

                    // ページの追加
                    pages.append(blancPage, PtlPages.OPTION_NONE);
                }
            }

        ...【AppendPages.javaと同じ処理のため省略
             ・PtlParamOutputを用いてPtlPDFDocument docの内容を出力
             ・PtlException, Exception, Error を catchするエラー処理
             ・finally文で"--完了--"と表示する処理】...

    }
}

サンプルファイル名

MakeEvenPage.java

入出力操作の例

C:\samples>java cookbook.MakeEvenPage 
usage: java MakeEvenPage in-pdf-file out-pdf-file

C:\samples>java cookbook.MakeEvenPage chap1-2.pdf chap1-2-even.pdf 
ページ数:13
ページ数は奇数です。空白ページを追加して出力します。
-- 完了 --

出力されたPDFには末尾に1ページ、白紙が追加されている。