Namazuで使うxdoc2txtとpdftotextの差異

今日、NamazuでPDF用のインデックスを作る作業をしていた。3時間かけても仕事が2割と進まない。あまりに時間がかかるので、暇つぶしに後輩の邪魔をしに行ったところ、「何言ってるんですか、Kakiharaさん、こんなPDFの作業、一時間もかかりませんよ」と言われてしまった。私のほうがはるかに高性能のCPU、メモリ、HDDで作業しているはずなのに。それで、後輩と自分の環境の違いを調査してみた。

結論からいくと、違っていたのは、PDFからテキストを抽出するのに、私はxdoc2txt.exeを使っていたのに対し、後輩はpdftotextを使っていたというところ。
私はGUIフロントエンドを作成する必要があったので、すべてWindows上で作業をしており、そのため、多機能で便利なxdoc2txtを使っていた。それに対して後輩はサーバー上での作業がメインのため、OSがLinuxでその流れでpdftotextを使っていたようだった。

で、本日の材料は、PDFファイル1300個。これを私のSempron3000+のマシンで処理すると、ファイル1個の処理に1分近くがかかる。トータルの作業時間は20時間。その間、CPU使用率が100%に近くなるので、あとは文書作成くらいの仕事しかできない。
一方、後輩君は、CPUが800MhzのノートPCでファイル1個の処理に5秒とかかっていない。
そりゃ、絶対pdftotextのほうがいいやというので、自分もWindows用のpdftotextをダウンロードしてきた。
Windows版のpdftotext.exeは、pdftotext.exeと同じフォルダに「xpdfrc」という名前の設定ファイルを置いておくと、それを読んでくれる。なので、そこに日本語関連のファイルの絶対パスを記述しておくことで、pdftotext.exeを日本語処理可能にすることができる。これ、豆知識。たしかマニュアルには書かれていなかったはず(以前、ソースを読んだときに発見した)。
で、やってみると、自分も1ファイル5秒以下で処理できるようになった。
おかげで仕事をさぼる暇がなくなってしまったのだが。

pdftotextは、縦書きのPDFをうまく処理できないという問題があるので、私は常日頃からなるべくxdoc2txtを使うようにしていたのだが、今後はケースバイケースで使い分けるようにしたほうがよさそうだ。

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック