psやepsからテキスト情報を抜き出す方法(postscript,eps)
日本語マニュアルを元にして英語マニュアルを作成するために epsデータからテキストを抜き出す方法を調査。
ps(Post Script)やeps(Encapsulated Post Script)は、それ自体はテキストファイルなので、 文字を抜き出すことは可能。 ただこちらの意図したように抜き出すのは、一筋縄ではいかないようです。
namazuは、psファイルもインデックス対象に入れられるので、 psをプレーンテキストに変換するフィルタがあると思って 調べてみると、postscript.pl というフィルタが用意されていました。
しかし、postscript.pl は、内部で、ps2ascii または ps2text を 呼び出しているだけなので、結局ps2ascii か ps2text が ps からテキスト情報を抜き出している核になるプログラムということ。
ps2ascii
whichで自分が使っているマシンにps2asciiがインストールされているか 調べたところ、ある。
$ which ps2ascii
/usr/bin/ps2ascii
$ ps2ascii foo.ps
しかし、ps2asciiは、日本語処理を想定していないようで、実際に 試してみるとNG。
ps2text
ps2textを入手 して、インストール。
ps2text は内部でghostscriptを使うため、システムにgsコマンドが
インストールされている必要がある。
ps2text-0.4.1.tar.Zを展開してできた
Makefileを以下のように修正。(詳しくはREADME.eucを参照のこと)
Makefile
BINDIR = ${HOME}/local/bin
LIBDIR = ${HOME}/local/ps2text
GS = /usr/bin/gs
make
$ make
$ make install
PSファイルのテキスト取り出し
$ ~/local/bin/ps2text test.eps > test.txt
{strong:vertical string ... }
というエラーが出た場合は -l オプション(landscape option)を
つけてみると状況が良くなることがあります。
$ ~/local/bin/ps2text -l test.eps > test.txt
結論
namazuのように検索用インデックスのためにテキストを抽出するには 十分使えるでしょう。けれども、 日本語マニュアルを英語に翻訳するために、テキストを効率的に抜き出したい という場合には、あまり役に立つとは思えません。 まったく無いよりはかなり助けになる可能性はありそうですが。
もっとも、psデータ自体の作り方によってはかなり期待通り テキストを抜き出せるのかもしれません。