在通过rmagick之前,PDF中的一切看起来都很好:
但是在经历了rmagick后,质量非常糟糕:
发生了什么事?我根本没有压缩它。这是方法:
def create_pdf_image
@document = Document.find(params[:document_id])
ruler = 400
pdf = Prawn::Document.new(:page_size => [ruler, ruler], :margin => 0, :optimize_objects => true)
@document.post_pdf(pdf, ruler)
temp = "#{@document.user.name.downcase.parameterize.underscore}-#{@document.id}"
pdf.render_file("#{::Rails.root}/public/#{temp}.pdf")
image = Magick::ImageList.new("#{::Rails.root}/public/#{temp}.pdf")
image.strip!
image.write("#{::Rails.root}/public/#{temp}.jpg") { self.quality = 100 }
send_file("#{::Rails.root}/public/#{temp}.jpg")
end
任何帮助都会很棒。谢谢!
答案 0 :(得分:4)
您的输入文件是PDF(矢量文件),ImageMagick必须将其转换为位图。默认情况下,输入文件的像素密度设置为72x72(水平x垂直)。您可以覆盖它,但仅限于创建ImageList时:
path = "#{::Rails.root}/public/#{temp}.pdf"
image = Magick::ImageList.new(path) { self.density = 300 }
那应该将输入文件的密度设置为300ppi,这应该足够了。