PDFなど各種ファイルを読みこなすための工夫 〜 視覚障害者の立場から 〜

ページ更新日  2008年11月22日

 ここでは、画面を見ることのできない視覚障害者の立場から、MS-Windows環境の下で、PDFなど各種ファイルを読みこなすための工夫を記しています。

[当サイトから dx100.exe または dx100.zipを以前ダウンロードされた方は、少し改善を加えて version 1.1 にしましたので、よかったらダウンロードし直して下さい。]


 PDFならアクロバットリーダー、エクセルデータならエクセルでというように、そのファイルを扱うための専用のソフトで処理するのが王道ではありますが、視覚障害者にとって、その専用のソフトが使いやすいとは限りません。場合によっては使えないこともあります。

 そんなとき、ファイルを別の形式に変換して処理することが有力な手段になります。例えば、テキストファイルに変換してメモ帳などのエディタで読む、といったことです。

 ただ、単純にテキスト化しても内容を把握しにくい場合があります。表が分かりにくかったり、あるいは、文章が2段組みで書かれていると、左の1行目に続いて右の1行目がつながってしまい、ごちゃごちゃになって分からなくなる、といったことがあります。

 以下では、先ず、とりあえずテキスト化するためのノウハウについて記し、その後で、テキスト化だけでは解決できない部分への対処方法について記します。


PDFなど各種ファイルからテキストを抽出するための支援ツール

 PDF、ワード、エクセル、一太郎、パワーポイントなどの各種ファイルからテキストを抽出するためのソフト xdoc2txt というのがあります。多様なデータに対応している優れたソフトですが、基本的にコマンドライン(DOSプロンプト)で操作するものであり、視覚障害者がWindowsのGUI環境で操作するためにはインストールの工夫が必要になります。

 そのインストールをほぼ自動的に行うためのツール d2txt_x を作ってみました。また、抽出されたテキストを、視覚障害者に分かりやすくするための加工も行います。

 エクセルの表をテキスト化するとタブ区切りのデータになりますが、その表を「たてよこ逆転」したり、「箇条書きに変換」するソフトも付属させました。


 圧縮ファイルの形で登録してありますが、

の2種類があります。どちらをダウンロードしていただいても結構です。

 これら圧縮ファイルを解凍すると、dxというフォルダができて、その下にinstall_dx.exeというインストールプログラムがありますので、それを実行して下さい。

 インストールできたら、マイコンピュータ(Vistaではコンピュータ)で何かPDFファイルなどに焦点を当てて、ファイルメニューの「送る」メニューの中から「T テキストを抽出」を選んでみて下さい。

 少しすると再びマイコンピュータに戻りますが、新たにテキストファイルができているはずです。例えば、「test.pdf」を処理した時は「test.pdf.txt」というテキストファイルができます。

 その中身を見ていただくと、PDFに何が書かれているのか分かります。たまに中身が何もないこともありますが、それはテキストをうまく抽出できなかったことを意味します。


 上の方法でインストールすると、最新バージョンの xdoc2txt がインストールされるはずです。

 パスワードで保護されたPDFからもテキストを抽出できます。

 詳しくは同梱されている d2txt_x.txt および xdoc2txt.txt をお読み下さい。


バージョンアップ情報

 version 1.0 → 1.1 の改正で、ワンクリックでテキスト抽出を行う仕組みを追加しました。デスクトップの「OneCrickテキスト抽出」を選択し、そのプロパティでお好みのショートカットキーを設定すると、ワンクリック実行ができるようになります。

 また、テキスト抽出が全く行えない場合も空のテキストファイルが作成されていましたが、極力それを避けるようにしました。


表などをなるべく正確に把握するために

 これまで書いてきた方法で、とりあえずテキスト化できるというのは、とても便利です。

 ただ、私の場合、仕事で扱うものには表などのデータがよく出てきます。エクセルのデータならタグ区切りのテキストになるので把握しやすいのですが、PDFやパワーポイントに含まれている表は、レイアウトが崩れたり、セルとセルがくっつくなどして、肝心のデータが把握困難というケースが少なくありません。


 そんな時にどう対処するか、いろいろな工夫があると思いますが、私の場合は市販ソフト(1万円前後)のアンテナハウス「リッチテキストPDF4」を使っています。「PDFを見ながらExcelに打ち直ししていませんか?」も併せてご参照ください。

 PDFをワード、エクセル、一太郎のファイルに変換したり、その逆変換も行えるソフトです。

 PDFの中に画像として保存されているものをOCR処理する機能もあります。

 例えば、パワーポイントのデータをそのままテキスト化するよりは、一度PDFにして、それを上記のソフトでエクセルに変換すると、表の部分をきれいに取り出せることが多いというのが実感です。


 OCR機能に関連して、あくまで私の経験と実感にすぎませんが、リッチテキストPDF4とE.Typistの比較を少し書きます。

 E.Typistは、ver 11.0 なので最新版ではありませんが使っています。

 画像が組み込まれているPDFを読むためには、やはりOCRソフトが必須です。E.Typistは、PDFを画像ファイルとして読み込んで、それをOCR処理した上で、テキスト、エクセル、ワード、一太郎、htmlなどのファイルとして書き出す機能があります。表だけを抽出して、エクセルのファイルとして書き出す機能もあります。手元にないと困るソフトです。

 ただ、私が使っているバージョンだと、文字化けみたいになってしまう部分が結構あります。例えば数字は、0がo、1がl、2がaやz…… のように誤読してしまう箇所が、ファイルによっては多発します。正しいデータとして把握するのには少々苦しいというのが実感です。

 アンテナハウスの「リッチテキストPDF4」も、OCR機能の精度は同じようなものだと思いますが、E.Typistが総てを画像として処理するのに対し、こちらはPDFに埋め込まれている画像以外のデータをなるべく活用し、OCRに頼らないデータ抽出を試みているように思います。結果的に比較的正確な形で出力が得られると感じます。

 例えば、パワーポイントのデータをPDFにしたものがあったとして、それをE.Typistで処理した場合と、リッチテキストPDF4で処理した場合とでは、その正確さがかなり違います。

 もっとも、PDFにする時に、総て印刷イメージ(画像)としてPDFにしてしまうと、E.TypistでもリッチテキストPDF4でも、あまり違いがありません。

 パワーポイントに組み込まれているデータを画像としてでなく別の形で組み入れてPDFを作った場合は、両者に違いが出てくる。そんなことではないかと推測します。


 最後に、各種ファイルをPDFに変換する方法について書きます。

 リッチテキストPDF4があれば、ワード、エクセル、一太郎のファイルをPDFに変換できます。しかし、それ以外の、例えばパワーポイントのファイルは変換できません。

 そんなとき、手軽に使えるのがDoc2PDF Online :: PDFへ変換したいドキュメントを送信するというサイトです。

 ブラウザ上で、変換したいファイルの名前をフルパスで入力すると、それが相手のサーバに送られ、PDFに変換した結果がメールで届きます。

 手元のパソコンにパワーポイントがインストールされていなくても、PDFに変換したものを得られることになります。

 このPDFは、総てを印刷イメージ(画像)として組み入れるのでなく、画像以外のデータをなるべく活用して変換されているように思います。したがって、リッチテキストPDF4でそのPDFを変換すると、精度のいいデータが得られます。少なくとも私の経験ではそう感じられます。

 ちなみに、Adobe Acrobat Professional で作成したPDFも、画像以外のデータを極力 組み入れて作成されていると思います。


リッチテキストPDF4に関する補足

 リッチテキストPDF4の変換機能は、スクリーンリーダー(私の場合は PC-Talker on Windows-XP)で問題なく使えます。
ただ、変換がいつ終わったのかがよく分かりません。終わった時に何か音がするなどの反応があればいいのですが、そうしたものがありません。仕方ないので、ファイルメニューを出してみて、アプリケーションの終了を選択できるかどうか(選択できない時は通常より高いトーンで「アプリケーション終了」と読み上げられる。)を確認しています。
それから、リッチテキストPDF4には、PDFを編集する機能等もありますが、それらをスクリーンリーダーで使えるのかどうかは試してません。


[rubyスクリプト・テクニカル参考情報]

d2txt_xのパッケージを解凍すると、scriptというフォルダの下にinstall_dx.rbがあります。rubyスクリプトです。その中に、次のようなメソッド(関数)があります。応用できる場面が結構あるのでは?と思うので、サンプルとして利用していただければと思います。

  1. get_http_ms(url): http上のファイルをバイナリー形式で得る。MS-windows専用版。

    IEが動作する環境であれば使える。proxy設定環境の下でもOK。win32oleのMsxml2.XMLHTTPを用いているので、IEを自動操縦する時より迅速な処理を実現。エラーチェック、タイムアウトチェックも行っている。問題は、100メガバイト単位の大きなファイルを扱う時にエラーが発生してしまうらしいこと。

  2. melt_lzh(file_name): lzh書庫を解凍する。unlha32.dllが必要。rubyスクリプトをexe化するためのexerbを利用すれば、unlha32.dllをexeファイルに含めることができ、unlha32.dllがない環境でも実行できる。
  3. melt_zip(file_name): zip書庫を解凍する。unzip32.dllが必要。

トップページへ