以下のようなコードで抽出できる。
extract_images.rb
# coding: utf-8
require 'origami'
include Origami
pdf = PDF.read(ARGV[0])
images = pdf.root_objects.find_all {|obj| obj.is_a?(Graphics::ImageXObject)}
images.each do |stream|
ext, image_data = stream.to_image_file
image_file = "image_#{stream.reference.refno}.#{ext}"
File.open(image_file, "wb") do |f|
f.write(image_data)
end
end
使い方
$ ruby extract_images.rb PDFファイル名