PDFドキュメントをPDFを開く際のUIの表示開く際のUIの表示について説明します。
PDFファイルを開いたときの表示の種類として、ツールバーなどのUIの表示・非表示を設定できます。
表示・非表示を切り替え可能なのは、メニューバー、ツールバー、ウィンドウコントロールの3項目についてです。それぞれ全て、デフォルトでは表示される設定になっています。
本サンプルプログラムでは、入力PDFにメニューバー、ツールバー、ウィンドウコントロールそれぞれの表示・非表示を設定されたPDFドキュメントを出力します。
定数値名 | 内容 | 値 |
---|---|---|
UI_OPTION_NONE | なし | 0 |
UI_OPTION_HIDE_MENUBAR | メニューバーを非表示にする | 1 |
UI_OPTION_HIDE_TOOLBAR | ツールバーを非表示にする | 2 |
UI_OPTION_HIDE_WINDOWUI | ウィンドウコントロールを非表示にする | 4 |
package cookbook; import jp.co.antenna.ptl.*; public class SetOpenModeOfUI { // そのクラスのusageを表示する関数 private static void printUsage() { System.out.print("usage: java SetOpenModeOfPageOfUI in-pdf-file out-pdf-file"); System.out.println(" hide-menubar hide-toolbar hide-window-ui"); System.out.println("hide-menubar : "); System.out.println("0: メニューバーを表示 1: メニューバーを非表示"); System.out.println("hide-toolbar : "); System.out.println("0: ツールバーを表示 1: ツールバーを非表示"); System.out.println("hide-window-ui : "); System.out.println("0: ウィンドウコントロールを表示 1: ウィンドウコントロールを" + "非表示"); } /** * @param args the command line arguments */ public static void main(String[] args) { if (args.length < 5) { printUsage(); return; } //TODO20181220 以下の記述をブラッシュアップする // コマンドライン引数の読み取り boolean flagHideMenuBar; boolean flagHideToolBar; boolean flagHideWindowUI; int UIOption; // hide-menubar try { flagHideMenuBar = readBoolArgs(args[2], "hide-menubarは" + "0か1で指定してください。"); } catch (IllegalArgumentException ex) { System.out.println(ex.getMessage()); printUsage(); // usageメッセージの表示 return; } // hide-toolbar try { flagHideToolBar = readBoolArgs(args[3], "hide-toolbarは" + "0か1で指定してください。"); } catch (IllegalArgumentException ex) { System.out.println(ex.getMessage()); printUsage(); // usageメッセージの表示 return; } // hide-window-ui try { flagHideWindowUI = readBoolArgs(args[4], "hide-window-uiは" + "0か1で指定してください。"); } catch (IllegalArgumentException ex) { System.out.println(ex.getMessage()); printUsage(); // usageメッセージの表示 return; } // 各フラグの論理和をUIOptionに設定。 UIOption = PtlOpenMode.UI_OPTION_NONE; if(flagHideMenuBar) { UIOption = UIOption | PtlOpenMode.UI_OPTION_HIDE_MENUBAR; } if(flagHideToolBar) { UIOption = UIOption | PtlOpenMode.UI_OPTION_HIDE_TOOLBAR; } if(flagHideWindowUI) { UIOption = UIOption | PtlOpenMode.UI_OPTION_HIDE_WINDOWUI; } 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()) { // 開き方の取得 /*----- 開き方のデフォルト設定 -----*/ ...【SetOpenAction.javaと同じ処理のため省略 ・サムネイルとページを表示するページモードに設定 ・連続ページの形で表示するページレイアウトに設定 ・ウィンドウをページのサイズに合わせ、画面中央に表示するように設定 ・ウィンドウのタイトルバーに文書タイトルを表示するように設定 ・右から左に読み上げオプションを設定する】... ...【SetOpenModeOfPage.javaと同じ処理のため省略 ・最初に開くページを2ページ目にし、あらかじめ決まった座標をズームして開くよう設定】... /*----- 以上、ここまでが開き方のデフォルト設定 -----*/ // ユーザーインターフェイスオプションを設定(論理和) // (デフォルト設定よりも優先させるために後で設定する) openmode.setUIOption(UIOption); } // ファイルに保存します。 doc.save(outputFile); } ...【AppendAnnotStampDefault.javaと同じ処理のため省略 ・エラーメッセージ処理と出力】... } /** * 0または1を入力されたargsにより、trueまたはfalseを返すメソッド。 * * @param args 与えられるコマンドライン引数。0または1でtrueまたはfalseを指定する。 * @param errorMessage argsが0か1でなかった場合に出力されるエラーメッセージを指定。 * @return argsの数値を読み取った結果を戻す * @throws java.lang.IllegalArgumentException argsが0か1でなかった場合に発生。 */ public static boolean readBoolArgs(String args, String errorMessage) throws IllegalArgumentException { ...【AppendAnnotHighlight.javaと同じ処理のため省略】... } }
SetOpenModeOfUI.java
C:\samples>java cookbook.SetOpenModeOfUI usage: java SetOpenModeOfPageOfUI in-pdf-file out-pdf-file hide-menubar hide-toolbar hide-window-ui hide-menubar : 0: メニューバーを表示 1: メニューバーを非表示 hide-toolbar : 0: ツールバーを表示 1: ツールバーを非表示 hide-window-ui : 0: ウィンドウコントロールを表示 1: ウィンドウコントロールを非表示 C:\samples>java cookbook.SetOpenModeOfUI setopenmode.pdf setopenmodeUI-000.pdf 0 0 0 -- 完了 --