3

Imagemagic(RMAGick) を使用して PDF ドキュメントを画像に変換しようとしています。元の PDF も画像から作成されます (ネイティブ ベクター PDF ではありません)。

image = Magick::Image::from_blob(original_pdf) { self.format = 'PDF' }
image[0].format = 'JPG'
image[0].to_blob
image[0].write(to_file.jpg) {
  self.quality = 100
  self.density = 144
}

しかし、結果として得られる画像は、印刷時の品質が低すぎます。元の PDF は同時に高品質です。これらのオプションを使用しようとしています

self.quality = 100
self.density = 144

またはJPGではなくPNGを使用しますが、これはすべて機能しません。画像サイズをkb単位で増やすだけです)。

4

1 に答える 1

9

original_pdfたとえば、pdfファイルのコンテンツであると仮定します。

original_pdf = File.open('from_file.pdf', 'rb').read

from_blob 次に、 methodのブロックではなくmethod のブロックで品質オプションを適用しますwrite

image = Magick::Image::from_blob(original_pdf) do
  self.format = 'PDF'
  self.quality = 100
  self.density = 144
end
image[0].format = 'JPG'
image[0].to_blob
image[0].write('to_file.jpg')

methodの品質オプションMagick::ImageList.newも参照してください。

于 2013-12-14T18:12:19.457 に答える