Index > psやepsからテキスト情報を抜き出す方法(postscript,eps)
Fri, July 13, 2007

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データ自体の作り方によってはかなり期待通り テキストを抜き出せるのかもしれません。

 Twitter
follow me on Twitter
 Categories