1.2.6 ページの拡大・縮小

images/ZoomPage-top.png

狙い・効果

PDF文書の用紙サイズを拡大・縮小用紙サイズを拡大、縮小します。

処理の概要

PDF文書の全ページの用紙サイズを指定した用紙サイズに拡大または縮小します。これは、PDFの境界設定値の値を変更して、描画される文字の大きさなどをそれに比例して変更することに相当します。例えば、元のPDFの用紙サイズがA4のとき、50%縮小後の用紙サイズはA5となります。文字サイズも比例して小さくなります。

なお、用紙サイズの変更は、印刷するときの用紙の寸法の変更であり、PDFのファイルサイズを増減する処理ではありません。

PDF Tool APIの主な機能

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

プログラム例

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

入出力操作の例

images/ZoomPage.png