rubyのRMagickはImageMagickをラッパーで呼び出すので、rubyからもPDFを変換分割が出来そう。
require 'rubygems' require 'RMagick' pdf_imagelist = Magick::ImageList.new("20101005095309.pdf") pdf_imagelist.first.write('sample.jpg')
irbでの出力例
irb(main):004:0> image_list = Magick::ImageList.new "test.pdf" => [test.pdf PDF 591x732 591x732+0+0 DirectClass 8-bit 24mb, test.pdf PDF 594x734 594x734+0+0 DirectClass 8-bit 24mb, test.pdf PDF 590x731 590x731+0+0 DirectClass 8-bit 24mb, (略 test.pdf PDF 597x732 597x732+0+0 DirectClass 8-bit 24mb] scene=19
ちょっと重いけど、ちゃんと動いたね。
ただ、画像解像度が落ちちゃうのです。これは現在調査中。
Rmagickは
別途コンパイル済みパッケージをインストールし無いと動かないと思います。
インストールはこっちにまとめた→RMagick (imagemagick for ruby )のインストール(win/linux) - ブックマクロ開発に
結局バッチ処理させた
rubyのライブラリ内部で解決すると思ったのですが。解像度2476x3036だったのが590x731に落ちちゃったので、結局バッチでごりごり呼び出すことにした。何で出来ないかなー
dirname = 'C:\Documents and Settings\All Users\Documents\ScanSnap_PDF' Dir.chdir dirname files = Dir.glob '*.pdf' #PDFファイル名を一覧する files.each{|filename| working_dir = File.basename(filename, ".pdf") Dir.mkdir working_dir unless FileTest.exists? working_dir Dir.chdir working_dir cmd = "\"C:\\Program Files\\gs\\gs9.00\\bin\\gswin32c.exe\" -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r300 -sOutputFile=#{working_dir}_%02d.jpg ..\\#{filename}" `#{cmd}` Dir.chdir dirname }