pdftotext でPDF内の文字情報取得

PDFの内容を検索材料として投入したい。
どのPDFのの何ページ目がヒットしたのか、ぐらいは表示できるようにしたい。
というわけで、pdfinfoとpdftotextを使用します。

まず

# yum install poppler poppler-utils

で、popplerをインストールしておきます。

# pdftotext --help
pdftotext version 0.12.4
Copyright 2005-2009 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2004 Glyph & Cog, LLC
Usage: pdftotext [options]  []
  -f           : first page to convert
  -l           : last page to convert
......
  -layout           : maintain original physical layout
  -raw              : keep strings in content stream order
......
  -enc      : output text encoding name
......
  -nopgbrk          : don't insert page breaks between pages
......

うむ。入ってるっぽい。

# pdftotext /home/katzplus/hogehoge.pdf

で、今いるディレクトリに「hogehoge.txt」が作成される。
が、中身を見ると・・・
———-
!んゃじいなえ吸コバタ、どけイイはのるすせわ合ち待でバタス
———-
なんだこれ・・・

rawをつける

# pdftotext -raw /home/katzplus/hogehoge.pdf

———-
スタバで待ち合わせするのはイイけど、タバコ吸えないじゃん!
———-
できた。
コレをDBに入れておく。

ページごとにコンバートしたいときは

pdftotext -raw -f 1 -l 1 /home/katzplus/hogehoge.pdf /home/katzplus/hogehoge_page1.txt

これで1枚目のみのコンバート。

pdftotext -raw -f 1 -l 9 /home/katzplus/hogehoge.pdf /home/katzplus/hogehoge_page1to9.txt

だと1枚目から9枚目までのコンバート。

PDFが何ページあるのか確認したい場合は、

# pdfinfo /home/katzplus/hogehoge.pdf
Title:          
Author:         katzplus
Creator:        PScript5.dll Version 5.2.2
Producer:       GPL Ghostscript 8.15
CreationDate:   Fri Oct 32 19:19:29 2014
ModDate:        Fri Oct 32 19:19:29 2014
Tagged:         no
Pages:          11
Encrypted:      no
Page size:      595 x 842 pts (A4)
File size:      232654 bytes
Optimized:      no
PDF version:    1.4

こんなカンジでページ数を確認できたりします。この場合は11枚。
PDFに振ってあるノンブルは作成者が任意に指定することができるので、
11ページではなくて11枚ってことで。

ページごとにデータを取得すると、何ページに該当ワードが出現したのか示すことができるようになるけど、
ページをまたいで出現したワードの扱いが面倒になる。
その辺はデータの入れ方や検索のやり方で任意に迎撃しましょう。