JPedalのアクセシビリティオプションを使用する
このチュートリアルでは、ビューアをより特定のニーズを持つ方々にとってアクセシブルにするための、さまざまなオプションの使用方法について説明します。
ビューアには、PDFページ上のページ、テキスト、図形に使用される色を上書きするオプションが含まれています。
これにより、暗い環境で閲覧するために黒背景に白テキストでページを表示したり、目の疲れを軽減するためにページ色をオフホワイトに設定したり、読みやすさを向上させるためにテキストとページのコントラスト比を変更したりするなど、多くのメリットがあります。
これらの値は3つの異なる方法で設定できます。
環境設定ウィンドウ(編集 → 環境設定)を使用する方法は、ユーザーにこれらのオプションの変更を許可したい場合に、ユーザー自身も使用できるアプローチです。

環境設定ウィンドウが開いたら、左側のパネルでカラーオプションを選択すると、以下に示すオプションが表示されます。

ページのカラーオプションを制御する4つのオプションがあります。
- 「ページカラーを変更」ボタンは、ページの背景に使用される色を変更します。デフォルトは白です。
- テキストに使用される色を変更したい場合は、「文書のテキスト色を置き換える」チェックボックスを選択します。ページ上のテキストの色が、下のエリアに表示されている色で上書きされます。
- 「テキストカラーを変更」ボタンでは、ページのテキストコンテンツに使用される色を指定できます。デフォルトは黒です。
- 「テキストと線画の色を変更」を選択すると、ページ上の図形もテキストと同じ色で上書きされるようになります。
上記の環境設定ウィンドウで選択されたすべてのオプションは、(プロパティが読み取り専用でない場合)プロパティファイルに保存され、ビューアが開かれるたびに使用されます。
プロパティファイル は、これらの値を簡単に設定し、後でユーザーが変更できないようにプロパティをロックダウンできるアプローチです。
ページのカラーオプションを制御するプロパティは4つあります。
- vbgColor - このプロパティはページの色を制御します。Color.getRGB()を使用して取得したRGB色を表すIntegerを受け取ります。
<vbgColor value="16777215"/>
- replaceDocumentTextColors - このプロパティは、ページのテキストの色を変更するかどうかを指定します。boolean値を受け取ります。
<replaceDocumentTextColors value="false"/>
- vfgColor - このプロパティはテキストの色を制御します。Color.getRGB()を使用して取得したRGB色を表すIntegerを受け取ります。
<vfgColor value="0"/>
- changeTextAndLineart - このプロパティは、ページの図形の色も変更するかどうかを指定します。boolean値を受け取ります。
<changeTextAndLineart value="false"/>
独自のアプリケーション内からこれらの変更をトリガーすることもできます。これにより、独自のユーザーインターフェースから色の値を制御でき、必要に応じてJPedalのPDFから画像への変換 でも動作します。
以下の例は、これを実現する方法を示しています。
//値を保持するマップを作成
Map mapValues = new HashMap();
//これはページの色を設定します。ここのint値はページを黒にします。
mapValues.put(JPedalSettings.PAGE_COLOR, Color.WHITE.getRGB());
//これはテキストの色を設定します。ここのint値はテキストを白にします。
mapValues.put(JPedalSettings.TEXT_COLOR, Color.BLACK.getRGB());
//これは、図形と線画もテキストと同じ色にするかどうかを
//指定するフラグを設定します。
mapValues.put(JPedalSettings.CHANGE_LINEART, true);
//これにより実際に値が設定され、この時点から使用されます。
//ここでのdecoderはPdfDecoderのインスタンスです
decoder.modifyNonstaticJPedalParameters(mapValues);
ビューアには、テキスト読み上げ機能を追加する機能があります。実装後は、テキストをハイライトし、ページを右クリックして「ハイライトテキストを読み上げる」オプションを選択するだけです。
多くのテキスト読み上げサービスが利用可能ですが、それぞれに実装を提供する代わりに、シンプルなインターフェースとチュートリアル を提供し、お好みのサービスに実装して接続できるようにしています。
ビューアでは、複数の音声が利用可能な場合、テキスト読み上げの音声を変更できます。これは2つの方法で実行できます。
- プロパティファイルには、使用したい音声を指定できる設定があります(サービスに複数のオプションがある場合)。これはSpeech.setVoice(String)に渡される単純な文字列です。
<voice value="kevin16(general domain)"/>
- ビューアの環境設定ウィンドウ(編集 → 環境設定)の左側には、インターフェースオプションがあります。
テキスト読み上げが設定されている場合、このページにスピーチタブが表示されます。ここから、Speech.listVoices()によって返される音声のいずれかに音声を変更できます。
