あれこれ memorandoms やすなべ categorized Yasの状況 activities Yasについて about Yas Yasへの連絡 contact us

  Adobe Readerのお節介な機能  

 徒然

 今やアドビのPDFは、文書ファイルの受け渡しの際の標準形式と呼んで差し支えないない位の普及をみました。我々の社会生活に無くてはならない存在にまでなったPDF。このPDFを表示したり印刷したりする為のツール、Adobe Readerは、WindowsPCやAndroidスマートフォン、MacやiPadやiPhoneなどのデジタルデバイスのほとんどにプレインストールされています。

 書式情報を含む文書形式のファイルを受け渡したい場合、以前はMicrosoftWord形式でやりとりしたものであります。しかしWord形式はそもそも変更や改変を前提としたデータですので、全体として重く、しかもバージョンによって微妙にレイアウトが崩れてしまったりと云った問題も抱えていた為に、必ずしも便利とは呼べるものではありませんでした。しかも、勝手に文書を改変されその亜流が出回ってしまう事を防止するのが難しく、そういう意味でもPDFのようなフォーマットの普及浸透は、いわば必然であったかも知れません。フォント情報をインクルードする事で、単なる画像としてではなく、あくまでも「文書」として管理されますから、文書内の語句検索も可能。提供側でクリップボードへのコピーや印刷を制限したり閲覧パスワードを掛けたり出来る点も、歓迎すべき機能でありました。

これが毎回走るのは、ちとウザい。

 これだけ高機能になって参りますと、ハッカーはPDFのAPI機能を悪用して、マルウエアとして働くPDF文書を作る事が出来てしまいます。いわゆる脆弱性の発露であります。Adobeはこうした脆弱性をなくす為に、Adobe Readerのバージョンアップを繰り返してきました。PDF形式文書のフォーマット自体に手を加えると互換性問題が発生してしまいますから、表示プログラムをバージョンアップするしかなかった訳であります。

 こうしたプログラムのバージョンアップは半自動で行われます。いわゆるアプリの更新です。我々はこうしたバージョンアップに慣れっこになってしまっていて、深く考えずにバージョンアップを許してしまっているのが現状でしょう。

 先日もPCで作業をしておりますと画面の右下に「Adobe Readerの新しいバージョンがあります。インストールしますか」と表示されていたので、深く考えずにインストールを許可しました。インターネット経由で更新モジュールがダウンロードされ、インストールが完了するまで1分ちょっと。バージョンは11.0.2になりました。

 ところが、このバージョンアップを実施した後「文書の読み上げ準備が完了するまでお待ち下さい」というダイアログボックスが立ち上がり、プログレスバーが表示されるようになってしまいました。PDF文書を開く度にであります。元々Adobe Readerには文書の読み上げ機能がインストールされています。文書ファイルの読み上げ機能なんて使う事、普段はありませんからあまり意識していなかったのですが、バージョン11.0.2からは、文書読み上げの為の前処理をデフォルトで実施する設定になってしまったようなのであります。

「次回から表示しない」を選択

 勿論、世の中にはこの読み上げ機能を必要としているユーザもいらっしゃる事でしょう。しかしPDF文書を閲覧したり印刷したりするだけの私にとって、プログレスバーは邪魔なだけのステップであります。しかも当然、こうした読み上げの為の前準備は無用なシステムリソースを食います。何とかこの処理を止めたいのですが、設定メニューには読み上げ範囲や読み上げ順序の設定は有っても、読み上げ自体をキャンセルする機能は存在しません。う〜ん、何てこった!こんな事ならバージョンアップを掛けなければ良かった〜!

 Adobe Japanのテクニカルサポートにチャットで問い合わせたところ、読み上げ自体をキャンセルする設定は無いとの事。いよいよもって困りました。不便で不便で仕方がありません。かと云ってPDFを使わない訳にもいきませんしね。

 仕方がないのでAdobe本国のテクニカルサポートに直接問い合わせてみる事にしました。数回電話を回された後、開発チームに繋いで貰う事が出来ました。色々話が聞けましたよ。電話で得た情報は以下のようなものでありました。

  • 文書読み上げ機能については、各国毎に異なるモジュールを作っているが、それは全てAccessibility.apiというファイルで提供される。
  • Windows7の場合は、通常のインストールでは、C:\Program Files (x86)\Adobe\Reader 11.0\Reader\plug_insというフォルダに格納されている。
  • Adobe Reader本体が立ち上がる際にこの\plug_insというフォルダ内をサーチし、プラグインをロードする造りになっている。
  • このサーチは未知のモジュールロードをサポートする為に、特定のファイル名をサーチするのではなく拡張子.apiのファイルを全件サーチする方式である。
  • Accessibility.apiはデフォルトのプラグインの為、ロードに失敗するとエラーダイアログが出るが、このダイアログには「次回からはこのダイアログを表示しない」というチェックボックスが存在する。
  • 特定のプラグインだけを削除する行為は一種のリバースエンジニアリングにあたるので、adobeとしては公式に認める訳にはいかないが、特定のプラグインが削除された事を、メーカ側が確認する手段は存在しない。
  • 立場上、これ以上のアドバイスは出来ないのだが、もう分かったでしょ?

 私からは以下のように返答しておきました。

  • 貴重な技術情報を有り難う。モジュール連携の構造が理解出来た。
  • 勿論「公式に」Accessibility.apiを削除しても良いですかなどとAdobeに質問したりしない。
  • あなたの国際的な協力により、より便利にAdobe Readerを使えそうだ。

 ぶっちゃけて云えば、C:\Program Files (x86)\Adobe\Reader 11.0\Reader\plug_insフォルダのAccessibility.apiファイルを、例えばAccessibility.apixという具合に拡張子だけ変更すれば、次回立ち上げ時に「このバージョンの Adobe Reader は、スクリーンリーダーをサポートしていません。」というダイアログが上がりますが、「次回から表示しない(N)」というチェックボックスをONにする事で、以降ダイアログが上がることも、読み上げの前処理が走る事も無いという訳。

 あ、勿論、Adobeのテクニカルサポートに「公式に」質問しないで下さいね。あくまでも大人として自己責任での行動をお願いしま〜す。ふう。それにしても解決して良かったぁ〜。 Copyright (C) by Yas / YasZone

【つづく】

「あれこれ」の目次に戻る

Copyright(C) by Yas/YasZone