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