最近の人工知能ブームでテキストマイニングから法則を発見するといったこともしばしば行うようになってきました。
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というファイル名で作成されます