Java PDFビューアのユーザーインターフェース設定
JPedal ビューアは、PDFの表示、検索、抽出、変換のための充実した機能を持つPDFビューアです。すべてのユーザーが全ての機能を必要とするわけではないため、ビューアはプロパティのセットを使用して、ビューアの外観と利用可能な機能を制御できます。
これらのプロパティは、プロパティファイルまたはビューアに提供されるプロパティのマップを通じて制御できます。
ビューアは、3つの方法でプロパティファイルを読み込むことができます。
VMの引数“org.JPedal.Viewer.Prefs” を使用してプロパティファイルの場所を指定する。
ビューアのコンストラクタViewer(String) またはViewer(Accessible, String) にプロパティファイルのパスを提供する。後者は、こちらの詳細なチュートリアルを参照 して、別のアプリケーションにビューアを埋め込むことができます。
それ以外の場合、JPedalは、JPedalのjarと同じディレクトリにある.properties.xmlというファイルを読み込みます。存在しない場合は、デフォルトのプロパティを持つファイルが自動的に作成されます。
VMの引数とビューアのコンストラクタは、jarファイル内の場所、サーバーの場所、またはローカルマシンの場所をjar://、http://、またはfile://で始まるアドレスで指定できます。
プロパティファイルが存在しない場合(ビューアを最初に開いたときなど)、ビューアのデフォルトプロパティが使用され、ビューアを閉じる際に新しいファイルが作成されます。この新しいファイルは、VMの引数が設定されている場合はその場所に、設定されていない場合はjarと同じディレクトリに作成されます。
ビューアのプロパティは、ビューアにロードされたマップで指定できます。
この方法でロードされたプロパティは、ビューア使用中に編集できますが、使用間で保存されません。プロパティマップは、以下のビューアプロパティセクションで詳述されているPropertiesFileクラスの静的キーを使用する必要があります。
//Create a Viewer object
final Viewer viewer = new Viewer();
//Create a Map for properties
final HashMap<String, String> properties = new HashMap<>();
properties.put(PropertiesFile.KEY_BORDER_TYPE, "0");
properties.put(PropertiesFile.KEY_SMOOTH_IMAGES, "true");
//Load the properties
viewer.loadProperties(properties);
//Set up the Viewer for use
viewer.setupViewer();
プロパティがロードされると、ビューアは提供されたプロパティに合わせて更新されます。
ビューア内には、プロパティファイルを設定できる設定ウィンドウがあります(ただし、すべての値を有効にするには保存して再起動する必要があります)。
このウィンドウは、メニュー項目Edit -> Preferences(Ctrl + K)からアクセスできます。

設定ウィンドウには、ビューアのプロパティのほとんどのオプションが含まれています。ここから、ビューアのユーザーインターフェースもメニューセクションから変更できます。
メニューセクションは、ビューアの異なる領域を表す5つのタブに分かれています(下の画像を参照)。各タブには、個々のボタンや要素を非表示にできる要素のツリーが含まれており、それぞれの下にはGUIからこの要素を完全に削除するボタンがあります。

希望するプロパティを設定したら、現在のプロパティまたは新しいプロパティファイルに保存できます。
- OKボタンを使用して、現在のプロパティファイルにプロパティを保存。
- 「名前を付けて保存」ボタンを使用して新しいプロパティファイルに保存。これにより、変更前のビューアのプロパティはそのまま維持されます。
(以下、リストは原文のまま省略)# メニューバー
メニューバーの表示メニューの表示/非表示を設定します。このエレメントは、表示メニューに含まれる要素を定義する複数の子エレメントを持ちます。エレメントの名前は、英語の要素名を1つの単語にマージし、子エレメントを持つメニューの場合は「Menu」を末尾に追加した名前になります。
親エレメント このエレメントの親は「MenuBarMenu」です
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。すべての子エレメントも、含める要素を制御するためのブール値を受け入れます。
例
プロパティファイル
メニューバーのエクスポートメニューの表示/非表示を設定します。このエレメントは、エクスポートメニューに含まれる要素を定義する複数の子エレメントを持ちます。エレメントの名前は、英語の要素名を1つの単語にマージし、子エレメントを持つメニューの場合は「Menu」を末尾に追加した名前になります。
親エレメント このエレメントの親は「MenuBarMenu」です
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。すべての子エレメントも、含める要素を制御するためのブール値を受け入れます。
例
プロパティファイル
メニューバーのツールメニューの表示/非表示を設定します。
親エレメント このエレメントの親は「MenuBarMenu」です
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。
プロパティファイル
メニューバーのヘルプメニューの表示/非表示を設定します。このエレメントは、ヘルプメニューに含まれる要素を定義する複数の子エレメントを持ちます。エレメントの名前は、英語の要素名を1つの単語にマージし、子エレメントを持つメニューの場合は「Menu」を末尾に追加した名前になります。
親エレメント このエレメントの親は「MenuBarMenu」です
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。すべての子エレメントも、含める要素を制御するためのブール値を受け入れます。
例
プロパティファイル
UIの上部にあるボタンバーの内容の表示/非表示を設定します。このエレメントは、ボタンバーに存在する要素を定義する複数の子エレメントを持ちます。
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。すべての子エレメントも、含める要素を制御するためのブール値を受け入れます。
例
プロパティファイル
UIの上部にある表示オプションの表示/非表示を設定します。このエレメントは、さまざまな表示オプション要素を定義する複数の子エレメントを持ちます。
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。すべての子エレメントも、含める要素を制御するためのブール値を受け入れます。
例
プロパティファイル
UIの上部にあるナビゲーションバーの表示/非表示を設定します。このエレメントは、さまざまな表示オプション要素を定義する複数の子エレメントを持ちます。
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。すべての子エレメントも、含める要素を制御するためのブール値を受け入れます。
例
プロパティファイル
UIの上部にあるサイドタブバーの表示/非表示を設定します。このエレメントは、さまざまな表示オプション要素を定義する複数の子エレメントを持ちます。
値 ブール値。falseに設定すると、このエレメントがメニューバーから削除されます。すべての子エレメントも、含める要素を制御するためのブール値を受け入れます。
例
プロパティファイル
メニューバーを表示するかどうかを制御します。配置されているパネルも含みます。
値 ブール値。メニューバーを表示する場合はtrueです。
例
プロパティファイル
ボタンバーを表示するかどうかを制御します。配置されているパネルも含みます。
値 ブール値。ボタンバーを表示する場合はtrueです。
例
プロパティファイル
ナビゲーションバーを表示するかどうかを制御します。配置されているパネルも含みます。
値 ブール値。ナビゲーションバーを表示する場合はtrueです。
例
プロパティファイル
サイドタブバーを表示するかどうかを制御します。配置されているパネルも含みます。
値 ブール値。サイドタブバーを表示する場合はtrueです。
例
プロパティファイル
ページのテキストと画像の色を設定します。
値 Color.getRGB()を使用して取得したRGB色を表す整数。
例
プロパティファイル
ページ上でハイライトされたテキストの色を設定します。これは、テキスト周辺の領域の色であるハイライトカラーに加えて設定されます。
値 Color.getRGB()を使用して取得したRGB色を表す整数。
例
プロパティファイル
浮動小数点値を使用してハイライトの不透明度/透明度を設定します。
値 不透明度を表す浮動小数点値。1は完全な不透明度、0は完全な透明度を意味します。
例
プロパティファイル
すべてのハイライトオプションを無視し、ハイライト領域内に含まれるすべての色を反転させます。
値 ブール値。ハイライトで逆の色を使用する場合はtrueです。
例
プロパティファイル
編集可能なフォームフィールドをハイライトして、ページ上でより目立つようにします。
値 ブール値。編集可能なフォームフィールドをハイライトする場合はtrueです。
例
プロパティファイル
highlightFormFieldsが trueに設定されている場合に、フォームフィールドのハイライトに使用する色を指定します。
値 Color.getRGB()を使用して取得したRGB色を表す整数。
例
プロパティファイル
ドキュメント内のテキストの色を、vfgColor(以下参照)で指定された値に置き換えるかどうかを制御するフラグ。
これは、ページのコンテンツを読みやすくし、アクセシビリティを向上させるのに役立ちます。
値 ブール値。テキストの色を置き換える場合はtrueです。
例
プロパティファイル
テキストの色の置換を適用するために、すべてのRGBコンポーネントが下回る必要がある値。これは、ページのコンテンツを読みやすくし、アクセシビリティを向上させるのに役立ちます。
値 非負の整数値。
例
プロパティファイル
replaceDocumentTextColorsが trueに設定されている場合に、ページ上のテキストの置換色を設定します。
これは、ページのコンテンツを読みやすくし、アクセシビリティを向上させるのに役立ちます。
値 Color.getRGB()を使用して取得したRGB色を表す整数。
例
プロパティファイル
ページのテキストコンテンツと共に、図形/線画の色も変更するかどうかを設定します。これは、ページのコンテンツを読みやすくし、アクセシビリティを向上させるのに役立ちます。
値 ブール値。テキストの色を置き換える場合はtrueです。
例
プロパティファイル
デフォルトの白の代わりに、PDFページの色を設定します。 これは、ページのコンテンツを読みやすくし、アクセシビリティを向上させるのに役立ちます。
値 Color.getRGB()を使用して取得したRGB色を表す整数。
例
プロパティファイル
PDFディスプレイパネルの背景を、ユーザー定義の設定に置き換えるかどうかを設定します。これは、ページのコンテンツを読みやすくし、アクセシビリティを向上させるのに役立ちます。
値 ブール値。PDFパネルの背景色を置き換える場合はtrueです。
例
プロパティファイル
デフォルトの代わりに、PDFディスプレイパネルの色を設定します。 これは、ページのコンテンツを読みやすくし、アクセシビリティを向上させるのに役立ちます。
値 Color.getRGB()を使用して取得したRGB色を表す整数。
例
プロパティファイル
ビューアーの起動時に、最後に開いたドキュメント(最近のファイルリストから)を再度開くかどうかを制御するフラグ。
値 ブール値。最後に表示したPDFを開く場合はtrueです。
例
プロパティファイル
ビューアーが最後に開いたドキュメントを開いたときに開くページ。これはビューアーが閉じられたときに設定されます。
値 開くページの非負の整数値。
例
プロパティファイル(最近のドキュメントリストが空のため含まれません)
PDFページの表示パネルの端からの余白のサイズを指定します。
値 余白の長さを示す非負の整数値。
例
プロパティファイル
サイドタブバーパネルを折りたたむためにクリックしたときに使用する分割ペインの仕切り位置を設定します。
値 仕切り位置の非負の整数値。
例
プロパティファイル
サイドタブバーパネルを展開するためにクリックしたときに使用する分割ペインの仕切り位置を設定します。
値 仕切り位置の非負の整数値。
例
プロパティファイル
新しいファイルが読み込まれても、サイドタブバーの仕切り位置を変更しないフラグ。
これはプロパティstartSideTabOpenを上書きします。
値 ブール値。サイドタブバーの仕切りが変更されない場合はtrueです。
例
プロパティファイル
PDFページを右クリックしたときにコンテキストメニューを表示するかどうかを制御するフラグ。このメニューは、テキスト/画像の抽出、テキストの全選択/選択解除、テキストのコピーなどのオプションを提供します。
値 ブール値。右クリック時にコンテキストメニューを表示する場合はtrueです。
例
プロパティファイル
Ctrlキー(Windows/Linux)またはCommandキー(Mac)を押しながらマウスホイールを使用して、拡大/縮小の値を増減できるようにするフラグ。
値 ブール値。マウスホイールで拡大/縮小の値を変更できる場合はtrueです。
例
プロパティファイル
プロパティファイルをリードオンリーとしてフラグ設定します。これは基盤となるオペレーティングシステムでファイルをリードオンリーに設定するものではありませんが、ビューアの環境設定ウィンドウで変更を保存できないようにします。
これは、ライブアップデートされる値は引き続き使用できますが、状態は保存されないことを意味します。
値 ブール値。trueの場合、ビューアによってファイルを更新できません。
例
プロパティファイル
<readOnly value="false"/>
プロパティマップ 読み込みは常に読み取り専用として扱われるため、含まれていません
対面表示モードでのページめくりアニメーションを許可するフラグです。このアニメーションとコントロールにより、ページをドラッグして次のページに変更できます。アニメーションは本のページをめくるような外観を提供します。
値 ブール値。trueの場合、ページめくりアニメーションを有効にします。
例
プロパティファイル
<enhancedFacingMode value="true"/>
プロパティマップ
map.put(PropertiesFile.KEY_ENHANCED_FACING_MODE, "true");
この値は、ビューアのウィンドウのウィンドウタイトルを置き換えます。空の場合、ウィンドウタイトルは変更されません。
値 ウィンドウタイトルを置き換える文字列値。
例
プロパティファイル
<windowTitle value=""/>
プロパティマップ
map.put(PropertiesFile.KEY_WINDOW_TITLE, "");
(以下、同様の翻訳パターンで続きます。全文を翻訳するには文字数制限があるため、代表的な部分のみ示しています。)オフスクリーンレンダリング技術を使用するかどうかを設定します。これらの技術は、テキスト選択やハイライトなどのインタラクティブ機能を実現するために、ページの可視部分をメモリ内のイメージにレンダリングします。 この機能は、メモリ使用量を増やす代わりに、より高速な操作を実現します。
値 トゥルーの場合、オフスクリーンレンダリングが使用されます。真偽値(ブール値)です。
例
プロパティファイル
<useOffScreenRendering value="true"/>
プロパティマップ
map.put(PropertiesFile.KEY_USE_OFFSCREEN_RENDERING, "true");
フルオフスクリーンレンダリング技術を使用するかどうかを設定します。これはオフスクリーンレンダリングオプションと同様に機能しますが、ページ全体をメモリに格納するため、表示領域より大きいページのスクロール応答性が向上します。 この機能は、メモリ使用量を増やす代わりに、より高速な操作を実現します。
値 トゥルーの場合、フルオフスクリーンレンダリングが使用されます。真偽値(ブール値)です。
例
プロパティファイル
<fullOffScreenRendering value="true"/>
プロパティマップ
map.put(PropertiesFile.KEY_FULL_PAGE_OFFSCREEN_RENDERING, "true");
画像コンテンツの外観を改善するために、画像スムージング技術を使用するかどうかを設定します。
値 トゥルーの場合、画像スムージングが使用されます。真偽値(ブール値)です。
例
プロパティファイル
<useSmoothImage value="true"/>
プロパティマップ
map.put(PropertiesFile.KEY_SMOOTH_IMAGES, "true");
シェイプのストロークの幅を無視し、代わりに表示スケーリングに関わらず常に1ピクセルの太さでレンダリングするかどうかを設定します。
値 トゥルーの場合、線の幅は無視されます。真偽値(ブール値)です。
例
プロパティファイル
<hideLineWeights value="false"/>
プロパティマップ
map.put(PropertiesFile.KEY_HIDE_LINE_WEIGHTS, "false");
テキストコンテンツ内のURLをクリック可能にし、ユーザーのデフォルトブラウザでURLを開くかどうかを設定します。
値 トゥルーの場合、URLはクリック可能になります。真偽値(ブール値)です。
例
プロパティファイル
<treatURLTextAsLinks value="false"/>
プロパティマップ
map.put(PropertiesFile.KEY_TREAT_URL_TEXT_AS_LINK, "false");
環境設定ウィンドウにアクセスできるユーザーは、プロパティファイル内の値を変更できます。
これを防ぐために、プロパティファイル内の環境設定要素を無効にし、jarファイル内部に保存するなど、ユーザーがアクセスできない場所にプロパティファイルを保存することをお勧めします。
ただし、最近使用したドキュメント機能はプロパティファイルにファイル名を保存することで処理されることに注意してください。ファイルがjar内に保存されたり、読み取り専用になったりして更新できない場合、最近使用したドキュメントの値を更新できないため、ビューアーを閉じたときに値が保存されません。
