
ページモードを指定ページモード・ページレイアウトを指定します。
PDFファイルを開いたときの表示の種類として、ページモード、ページレイアウトを指定できます。
ページモードは文書を開いた時のページの表示方法で、文書ページと一緒に開かれるパネルを指定できます。ページレイアウトは文書を開いた時のレイアウトで、単一ページ表示や見開きページ表示などを指定できます。
本サンプルプログラムでは、入力PDFのページモード種別とページレイアウト種別を指定したPDFドキュメントを出力します。
| PAGE_MODE_USE_ATTACHMENTS | 添付ファイルパネルとページ | 
| PAGE_MODE_USE_NONE | ページのみ表示 | 
| PAGE_MODE_USE_OC | レイヤーパネルとページ | 
| PAGE_MODE_USE_OUTLINES | アウトラインパネルとページ | 
| PAGE_MODE_USE_THUMBS | サムネイルパネルとページ | 
| PAGE_LAYOUT_ONE_COLUMN | 連続ページ | 
| PAGE_LAYOUT_SINGLE_PAGE | 単一ページ | 
| PAGE_LAYOUT_TWO_COLUMN_LEFT | 奇数ページを左側にして連続見開きページ | 
| PAGE_LAYOUT_TWO_COLUMN_RIGHT | 奇数ページを右側にして連続見開きページ | 
| PAGE_LAYOUT_TWO_PAGE_LEFT | 奇数ページを左側にして見開きページ | 
| PAGE_LAYOUT_TWO_PAGE_RIGHT | 奇数ページを右側にして見開きページ | 
package cookbook;
import jp.co.antenna.ptl.*;
public class SetOpenModeOfPage {
    // そのクラスのusageを表示する関数
    private static void printUsage() {
        System.out.print("usage: java SetOpenModeOfPage in-pdf-file out-pdf-file");
        System.out.println(" ページモード種別 ページレイアウト種別");
        System.out.println("ページモード種別: ");
        System.out.println("0 : ページのみ表示 1 : アウトラインパネルとページ");
        System.out.println("2 : サムネイルパネルとページ 3 : レイヤーパネルとページ");
        System.out.println("4 : 添付ファイルパネルとページ");
        System.out.println("ページレイアウト種別: ");
        System.out.println("0 : 単一ページ");
        System.out.println("1 : 連続ページ");
        System.out.println("2 : 奇数ページを左側にして連続見開きページ");
        System.out.println("3 : 奇数ページを右側にして連続見開きページ");
        System.out.println("4 : 奇数ページを左側にして見開きページ");
        System.out.println("5 : 奇数ページを右側にして見開きページ");
    }
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length < 4) {
            printUsage();
            return;
        }
        // コマンドライン引数の読み取り
        // ページモードの選択
        PtlOpenMode.PAGE_MODE pageModeType = PtlOpenMode.PAGE_MODE.PAGE_MODE_USE_NONE;
        switch(args[2]) {
        case "0": //0 : ページのみ表示
            pageModeType = PtlOpenMode.PAGE_MODE.PAGE_MODE_USE_NONE;
            break;
        case "1": //1 : アウトラインパネルとページ
            pageModeType = PtlOpenMode.PAGE_MODE.PAGE_MODE_USE_OUTLINES;
            break;
        case "2": //2 : サムネイルパネルとページ
            pageModeType = PtlOpenMode.PAGE_MODE.PAGE_MODE_USE_THUMBS;
            break;
        case "3": //3 : レイヤーパネルとページ
            pageModeType = PtlOpenMode.PAGE_MODE.PAGE_MODE_USE_OC;
            break;
        case "4": //4 : 添付ファイルパネルとページ
            pageModeType = PtlOpenMode.PAGE_MODE.PAGE_MODE_USE_ATTACHMENTS;
            break;
        default :
            System.out.println("ページモード種別は0から4の整数で指定して下さい。");
            printUsage();
            break;
        }
        // ページレイアウト種別:
        PtlOpenMode.PAGE_LAYOUT pageLayoutType = PtlOpenMode.PAGE_LAYOUT.PAGE_LAYOUT_SINGLE_PAGE;
        switch(args[3]) {
        case "0": //0 : 単一ページ
            pageLayoutType = PtlOpenMode.PAGE_LAYOUT.PAGE_LAYOUT_SINGLE_PAGE;
            break;
        case "1": //1 : 連続ページ
            pageLayoutType = PtlOpenMode.PAGE_LAYOUT.PAGE_LAYOUT_ONE_COLUMN;
            break;
        case "2": //2 : 奇数ページを左側にして連続見開きページ
            pageLayoutType = PtlOpenMode.PAGE_LAYOUT.PAGE_LAYOUT_TWO_COLUMN_LEFT;
            break;
        case "3": //3 : 奇数ページを右側にして連続見開きページ
            pageLayoutType = PtlOpenMode.PAGE_LAYOUT.PAGE_LAYOUT_TWO_COLUMN_RIGHT;
            break;
        case "4": //4 : 奇数ページを左側にして見開きページ
            pageLayoutType = PtlOpenMode.PAGE_LAYOUT.PAGE_LAYOUT_TWO_PAGE_LEFT;
            break;
        case "5": //5 : 奇数ページを右側にして見開きページ
            pageLayoutType = PtlOpenMode.PAGE_LAYOUT.PAGE_LAYOUT_TWO_PAGE_RIGHT;
            break;
        default :
            System.out.println("ページレイアウト種別は0から5の整数で指定して下さい。");
            printUsage();
            break;
        }
        try (PtlParamInput inputFile = new PtlParamInput(args[0]);
             PtlParamOutput outputFile = new PtlParamOutput(args[1]);
             PtlPDFDocument doc = new PtlPDFDocument()) {
            // PDFファイルをロードします。
            doc.load(inputFile);
            try (PtlDocProperty docProperty = doc.getDocProperty();  // PDFの文書プロパティ
                 PtlOpenMode openmode = docProperty.getOpenMode()) { // 開き方の取得
                /*----- 開き方のデフォルト設定 -----*/
                // オープンアクションの設定
                try (PtlActionGoTo act = new PtlActionGoTo(); // 設定するGoToアクション
                     PtlDestFitR dst = new PtlDestFitR()) {   // PDFの宛先
                    // 宛先ページの設定
                    // 最初に開くページを2ページ目にセット(ページ番号は0ベース)
                    dst.setPageNumber(1);
                    // 開く座標の設定
                    // leftの設定
                    dst.setLeft(100.0f);
                    //dst.setLeftNull();
                    // bottomの設定
                    dst.setBottom(100.0f);
                    //dst.setBottomNull();
                    // rightの設定
                    dst.setRight(120.0f);
                    //dst.setRightNull();
                    // topの設定
                    dst.setTop(150.0f);
                    //dst.setTopNull();
                    // zoomの設定
                    dst.setZoom(100.0f);
                    //dst.setZoomNull();
                    act.setDest(dst);
                    openmode.setOpenAction(act);
                }
	...【SetOpenAction.javaと同じ処理のため省略
	  ・ユーザーインターフェイスのうちウィンドウコントロールを非表示に設定
	  ・ウィンドウをページのサイズに合わせ、画面中央に表示するように設定
	  ・ウィンドウのタイトルバーに文書タイトルを表示するように設定
	  ・右から左に読み上げオプションを設定する】...
                /*----- 以上、ここまでが開き方のデフォルト設定 -----*/
                // ページモードの設定 ページレイアウトの設定
                // (デフォルト設定よりも優先させるために後で設定する)
                openmode.setPageMode(pageModeType);
                openmode.setPageLayout(pageLayoutType);
            }
            // ファイルに保存します。
            doc.save(outputFile);
        }
	...【AppendAnnotStampDefault.javaと同じ処理のため省略
	  ・エラーメッセージ処理と出力】...
    }
}
SetOpenModeOfPage.java
C:\samples>java cookbook.SetOpenModeOfPage usage: java SetOpenModeOfPage in-pdf-file out-pdf-file ページモード種別 ページレイアウト種別 ページモード種別: 0 : ページのみ表示 1 : アウトラインパネルとページ 2 : サムネイルパネルとページ 3 : レイヤーパネルとページ 4 : 添付ファイルパネルとページ ページレイアウト種別: 0 : 単一ページ 1 : 連続ページ 2 : 奇数ページを左側にして連続見開きページ 3 : 奇数ページを右側にして連続見開きページ 4 : 奇数ページを左側にして見開きページ 5 : 奇数ページを右側にして見開きページ C:\samples>java cookbook.SetOpenModeOfPage setopenmode.pdf setopenmode-00.pdf 0 0 -- 完了 --