
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 -- 完了 --