PDF文書のテキスト抽出
Solrを使ってPDF文書の全文検索システムを作ろうかといろいろと調査中である。Solr Cellを使うと、PDF文書やWord文書を簡単に取り込めるようだけど、ワードが含まれる場所(ページ番号)は関連付けされないようだ。
ページ番号が不明だと、対象となるPDF文書が分かっても、その文書を開いてから、そのワードを再検索しなければならない。それは面倒なので、ページ番号も一緒に取得できるようにして、コマンドラインから、ページ番号を指定して、PDF文書を開きたい。
まずは、PDF文書からページ単位でテキストを抽出する必要があるので、Rubyのpdf-reader を使い、手持ちの日本語のPDF文書を処理してみたが、最初のページは正しくテキストを抽出できたが、以降のページは文字化けし、正しくテキストを抽出できなかった。
Ubuntu12.04のXPDF(pdfinfo, pdftotextコマンド)では文字化けすることなくテキストを抽出できたので、これをラップしたRubyのライブラリを作成した。
ソースはこちらから。
https://github.com/takeisa/xpdf-ruby
サンプルコード
require './xpdf'doc = XPDF::Reader.read('sample.pdf')
puts "Title: #{doc.title}"
puts "Author: #{doc.author}"
puts "PDF Version: #{doc.pdf_version}"
doc.pages.each do |page|
puts page
end
何も難しいところはない。
XPDF::Document#pagesにページ毎に抽出したテキストを格納している。
0 件のコメント:
コメントを投稿