8

PDF ファイルを取得して画像に変換すると、各 PDF ページが個別の画像になります。

.doc や .pdf を画像に変換して Ruby でサムネイルを表示しますか?」 も同様の投稿ですが、ページごとに個別の画像を作成する方法については触れていません。

4

3 に答える 3

57

RMagick 自体を使用して、さまざまなページの画像を作成できます。

require 'RMagick'
pdf_file_name = "test.pdf"
im = Magick::Image.read(pdf_file_name)

上記のコードはarr[]、対応するページの 1 つのエントリを持つ array を提供します。5 ページ目の JPEG 画像を生成する場合は、次のようにします。

im[4].write(pdf_file_name + ".jpg")

ただし、これは PDF 全体をロードするため、遅くなる可能性があります。

または、5 ページ目の画像を作成したいが、完全な PDF ファイルをロードしたくない場合は、次のようにします。

require 'RMagick'
pdf_file_name = "test.pdf[5]"
im = Magick::Image.read(pdf_file_name)
im[0].write(pdf_file_name + ".jpg")
于 2011-06-16T09:13:30.230 に答える
21

ImageMagickは PDF でそれを行うことができます。おそらくRMagickでもできると思いますが、私はそれに慣れていません。

リンク先の投稿のコード:

require 'RMagick'
pdf = Magick::ImageList.new("doc.pdf")

pdfドキュメントImageListによると、そのメソッドの多くを に委譲するオブジェクトです。繰り返して呼び出して、個々の画像をファイルに書き込むことができるはずです。Arraypdfwrite

于 2010-06-04T13:21:03.413 に答える
2

RMagick でページごとに PDF を処理する方法が見つからないため、最初にpdftk の burstコマンドを使用して PDF をページに分割し、次に RMagick で個々のページを処理することをお勧めします。これはおそらくオールインワン ソリューションよりもパフォーマンスが劣りますが、残念ながらオールインワン ソリューションは存在しません。

pdftk にフックする Ruby 用のPDF::Toolkitもありますが、私はそれを使用したことがありません。

于 2010-06-04T13:37:34.110 に答える