たくさんのPDFファイルからPDFからテキストを取り出す方法(for Windows)

前は、ワードファイルで同様のことをする方法
http://d.hatena.ne.jp/tizz/20090311/1236831938
を書いたが今回はそのpdf版。

普通なら、CAM::PDF::PageTextモジュールを使えばいいのだが、うちではこれが動かなかったので(自分でコンパイルして入れた人もいるようだけど)、xdoc2txt+perlで。これは、perlって言うよりはwindows tipsかな。

手順

まずxdoc2txtをダウンロード(これはPDFに限らずテキストをいろいろなプログラムから切り出してくるコマンドラインで動くスタンドアロン・プログラム)。
http://www31.ocn.ne.jp/~h_ishida/xdoc2txt.html
ダウンロードしたものを解凍したフォルダに次のスクリプトを放り込む。

#! usr/bin/perl
my $infolder = shift;
opendir DIR, $infolder;
my @filelist = grep{/\.pdf/}readdir DIR;
for (@filelist){
system('xdoc2txt.exe','-f','-o=0',$infolder.$_);
}

このフォルダに、コマンドプロンプトを立ち上げ、コマンドライン
perl script_name.pl folder_path
と打てば、元のpdfがあったのと同じフォルダにテキストファイルができている。

ファイル名の文字コードの問題は考慮してないけど、ほとんどの場合で大丈夫なはず。ちなみにワードファイルに対して動揺のことをしたい場合は、スクリプト中のpdfをdoc(あるいはdocx)にするだけで動く(はず、試してないけど)。