2013-04-23 93 views
3

我试图使用Imagemagic(RMAgick)将PDF文档转换为图像。原始PDF也是从图像创建的(不是原生矢量PDF)。将PDF转换为JPG时质量不佳

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 

或使用PNG而JPG,但是这一切都不起作用,只会加剧KB图像大小)。

+0

可能重复[转换PDF到高分辨率图像](http://stackoverflow.com/questions/6605006/convert-pdf-to-image-with-high-resolution) – plinth 2013-04-23 13:53:59

回答

7

假设original_pdf是PDF文件的内容,例如:

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

然后在方法write的方法from_blob 而不是堵堵的适用质量选项:

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') 

看也quality options for Magick::ImageList.new method

+0

工作对我来说真棒!谢谢! – FUT 2014-01-27 09:49:51

+0

是的!这是实际上似乎使密度有任何影响的唯一方法 – atomkirk 2016-10-08 17:03:18

+0

这对我来说非常适合转换为PNG – tnaught 2017-09-21 20:29:29