読者です 読者をやめる 読者になる 読者になる

セキュリティがかかってなくてテキストが埋め込まれているPDF群からテキストを一括して抜き出す

セキュリティがかかってなくてテキストが埋め込まれているPDF群からテキストを一括して抜き出す(Windows - Cygwin編)

はじめに

Windows - Cygwin編、としているのは、単に、OSとしてUnix系をなんとかするという大仕事をせずに、Windowsからあまり離れずになんとかしよう、という目論見です。Macなら多分、ターミナルを使えばすぐにできることではないかと思います。

なぜわざわざUnix系コマンドを使うことを奨励するかと言いますと、Unix系コマンドは、テキスト処理のコマンドが豊富だから、ということがあります。字数をカウントしたり、行数をカウントしたり、ちょっとしたテキスト検索をしたり…と、色々なコマンドが用意されていて、ググれば色々な処理方法が見つかります。本当はVMware PlayerをインストールしてLinux (CentOSUbuntuなど)をインストールしていただた方がなおよいのですが、ここはまあ、まずは入り口ということでCygwinで。Cygwinは、かいつまんで言うと、Windows上でUnix系コマンドを使えるようにするソフトウェア(環境)です。

Cygwinのインストール(+パッケージの追加)

Cygwinのインストールは http://cygwin.com/install.html を見てください。日本語の解説もたくさんのWebページに載っていますので、適宜参照してください。ただ、注意していただきたいのは、今回のミッションのために、インストール時に少し工夫していただく必要があります。インストール時に、2つのパッケージの追加インストールを指定する必要があるのです。一つは「tcsh」もう一つは「poppler」です。インストール時にパッケージの確認をする画面が出てきます。そこで検索窓が上部にありますので、tcshとpopplerを検索して、それぞれ「skip」となっているところをクリックしてください。そうすると、Skipとなっていたところがバージョン名表示などに変わると思います。そうしましたら、先に進んでください。インストールが終了すれば、準備は完了です。

フォルダ/ディレクトリの確認と作業用ディレクトリの作成

Cygwinを立ち上げましょう。なんの変哲もない、コマンドプロンプトのようなものが開きます。ここでまずは
$ pwd
という風に入力してEnterキーを押してみてください。現在のディレクトリが表示されます。私の場合は /home/nagasaki となりました。

このウインドウはそのままにしておいて、次に、普通にWindowsのフォルダを開いてインストール時に設定したトップディレクトリ(ルートディレクトリ)に行ってみましょう。デフォルトだと、多分、C:\cygwin ではないかと思います。この場合、C:を開いて、cygwin フォルダを開いてください。そうしますといくつかのフォルダがあって、上記で表示された「home」というのがあると思います。それを開くと、上記で確認した「nagasaki」にあたる部分(人によって名前は違うはずです)の名前がついたフォルダがありますので、これを開いてみましょう。これが、上記で開いているディレクトリと対応しているフォルダです。ここで「pdf」というフォルダを作成してみましょう。

次に、Cygwinのウインドウ(コマンドプロンプトのようなもの)に戻って、「ls」としてみましょう。そうすると、上記で作成した「pdf」というのが表示されるはずです。作業ディレクトリをここに移動しましょう。
$ cd pdf
としてください。(=cd pdfと入力してEnterキーを押す。)そうすると、作業ディレクトリが「pdf」に移動しました。ここで、
$ ls
としてください。今はここにファイルが一つもありませんので、何も表示されないと思います。

PDFファイルの準備

さて、次に、お目当てのpdfファイル群をこの「pdf」フォルダにコピーしましょう。Windowsのフォルダの方でコピー&貼り付けすればOKです。

貼り付けしたら、Cygwinのウインドウに戻って、もう一度
$ ls
としてください。そうすると、今貼り付けたファイル群の各ファイル名がリストされるはずです。リストされなかったら、この時点で何か間違えているので戻って確認してみましょう。

テキストデータの一括抜き出し処理

さて、いよいよ、pdfファイル群からのテキストデータの一括抜き出しです。Cygwinにて、下記のコマンドを入力してみてください。
$ tcsh
$ foreach f (*.pdf)
$ pdftotext $f $f:r.txt
$ end

しばらく待つと、同じフォルダにテキストファイルが一つずつ生成されているはずです。中身を確認してみて内容が期待通りか確認してみてください。

終わりに

ちなみに、この作業は、一度Cygwin環境を用意できれば、あとは少しのコマンドを打つだけで済みますので、とにかく一度やってしまえば次からはかなり楽なはずです。

というわけで、頑張ってみてください。