2014年1月10日金曜日

ページ数の多いPDFから特定のキーワードがあるページだけを取り出すには?

何百枚もの申込書が一つのPDFにまとまっていて、その申込書の束のPDFから指定された検索キーワードが入っている申込書だけ抜き出したいなんてときがある。

アクロバットリーダーの検索機能で検索して取り出し、検索して取り出し・・・なんてことをしていたら日が暮れる。

幸い、PDFはスキャンではなくて文字列検索ができるPDFだ。
もう少し簡単にキーワードを含むページだけ取り出せないものか?


■必要な道具

PDFをページごとに分割するソフト「pdfknife
PDFをテキストファイルに変換するソフト「PDFDocText
テキストエディタ「サクラエディタ


■手順


1. pdfknifeでページごとに分割。


2. PDFDocTextで分割されたPDFをすべてテキストファイルに変換。


メニューバーの表示→オプションを選択して、「テキストエディタで表示する」がオンになっていると、ページごとにメモ帳などでファイルが開きます。オフにしておくと、ページ数が多いときいちいちファイルが開かれないのでそれだけ処理が早くなります。


PDFファイルを複数選択してそのままドラッグ&ドロップする。

オプションで「テキストエディタで表示する」をオフにする。

3. サクラエディタのGrep検索で探したいキーワードを含むファイルの一覧を出力させる。


サクラエディタのGrep検索とは指定されたフォルダにあるすべてのファイルに対してキーワード検索を行って、キーワードがあるファイルとその行を出力する機能です。

ここでは2で作成したテキストファイルが保存されているフォルダに対してGrep検索を行います。

検索キーワード「再生可能エネルギー」が含まれるテキストファイルを検索する。

検索キーワード「再生可能エネルギー」を含むファイルパスとその本文が出力されたサクラエディタのGrep検索結果の画面。

4. Grep検索結果にあるファイルパスをコピーしてExcelなどに貼り付けてバッチコマンドの文字列を作る。

ファイルパスの文字列を矩形選択し(ALTキーを押しながらマウスで四角く囲むと矩形選択できます)、ファイルパスだけをコピーします。

コピーしたファイルパス文字列をEXCELなどに貼り付けて、A列には「COPY 」という文字を入力しB列にコピーしたファイルパス、C列にコピー先のファイルパスを入力します。

B列の「.txt」という文字を「.pdf」に置き換えます。

A列には「COPY」、B列にコピーしたファイルパス、C列はコピー先のフォルダのパス。

5. 検索キーワードを含むPDFファイルだけをコピーするバッチコマンドを作って実行する。


シートのA列からC列まで選択してコピー、メモ帳などに貼り付けます。タブを半角スペースに置換して保存します。ファイル名は、「copypdf.bat」など拡張子が「.bat」になるようにします。

ここまで済んだら、「copypdf.bat」をダブルクリックで実行します。3で検索したキーワードを含むPDFファイルだけがコピー先のフォルダにコピーされます。


いちいち全部検索するよりずっと早く終わった。

さあ、投票に行こう!


0 件のコメント:

コメントを投稿