pdftotextでPDFを文字列化

最近の人工知能ブームでテキストマイニングから法則を発見するといったこともしばしば行うようになってきました。
PDFから文字列を抽出する方法をメモっておきます

環境

  • mac os 10.11

インストール

まずはpdftotextをインストールします

$ brew install homebrew/x11/xpdf-japanese

このまま実行するとエラーになります

$ pdftotext test.pdf
Syntax Error: No font in show
Syntax Error: Unknown character collection 'Adobe-Japan1'

こちらを参考に修正します

$ wget ftp://ftp.foolabs.com/pub/xpdf/xpdf-japanese.tar.gz
$ tar zxvpf xpdf-japanese.tar.gz
$ mkdir -p /usr/local/share/xpdf/japanese 
$ mv xpdf-japanese/* /usr/local/share/xpdf/japanese/
$ echo "textEncoding UTF-8" >> /usr/local/etc/xpdfrc
$ echo "cidToUnicode    Adobe-Japan1    /usr/local/share/xpdf/japanese/Adobe-Japan1.cidToUnicode" >> /usr/local/etc/xpdfrc
$ echo "unicodeMap  ISO-2022-JP /usr/local/share/xpdf/japanese/ISO-2022-JP.unicodeMap" >> /usr/local/etc/xpdfrc
$ echo "unicodeMap  EUC-JP      /usr/local/share/xpdf/japanese/EUC-JP.unicodeMap" >> /usr/local/etc/xpdfrc
$ echo "unicodeMap  Shift-JIS   /usr/local/share/xpdf/japanese/Shift-JIS.unicodeMap" >> /usr/local/etc/xpdfrc
$ echo "cMapDir     Adobe-Japan1    /usr/local/share/xpdf/japanese/CMap" >> /usr/local/etc/xpdfrc
$ echo "toUnicodeDir            /usr/local/share/xpdf/japanese/CMap" >> /usr/local/etc/xpdfrc

実行

2ページ目から出力してみます。

$ pdftotext -f 2 -raw -layout -enc UTF-8 test.pdf 

test.txtというファイル名で作成されます