ページモードを指定ページモード・ページレイアウトを指定します。
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 -- 完了 --