RubyでWebサイト上のPDFファイルの情報を取得

RubyでWebサイト上のPDFファイルの情報を取得するサンプルコードを作成しました。
 
1)pdf-readerのGemをインストール
 
gem install pdf-reader
 
2)サンプルコード作成
 

# -*- coding: utf-8 -*-
require 'pdf/reader'
require 'open-uri'

io = open('http://www.example.com/sample.pdf')
reader = PDF::Reader.new(io)

pdf_pages=""
reader.pages.each do |page|
  pdf_pages += page.text
end

result = pdf_pages.scan(/key_start(.*?)key_end/m)

File.open("result.txt","w"){|file|
  file.puts(result[0][0])
}

 
3)サンプルコードの説明
 
①open-uriを使ってPDFファイルをオープン。
 
io = open(‘http://www.example.com/sample.pdf’)
 
②PDF::Readerインスタンス作成。
 
reader = PDF::Reader.new(io)
 
③PDFファイル内の情報を取得
 
PDFファイルが複数のページで構成されているので、全ページを読み出し、変数に保持。
 
reader.pages.each do |page|
 pdf_pages += page.text
end
 
④scan関数で必要な情報を抽出。
 
HTMLファイルのようなタグが無いので、抽出する際の目印となるテキストを指定して、必要な情報を抽出します。
 
result = pdf_pages.scan(/key-start(.*?)key-end/m)
 
⑤抽出結果をファイルに保存
 
このサンプルでは抽出結果をテキストファイルに保存しています。
 
File.open(“result.txt”,”w”){|file|
 file.puts(result[0][0])
}
 
※コピーが許可されていない設定の場合は、取得できませんでした。さらにフォントの設定なのか原因ははっきり分かりませんが、文字化けしてしまう事もありました。

関連記事の目次

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です