在v0.8.0中做了一个
process :convert => "pdf"
在jpg上导致jpg存储在pdf内部。即PDF只是pdf的一个包装。
在v0.9.0之后,相同的操作会导致更小/更低分辨率的重采样jpg存储在pdf中。
相同版本的minimagick始终使用。
从生成的pdf中剪切以下两个块,第一个块是使用carrierwave 0.9.0生成的,第二个块是0.8.0。这是code / gemfile中唯一的变化。转换为PDF的文件是600 DPI图像。在将图像转换为PDF时,默认情况下,carrierwave 0.9.0似乎使用dpi为72 ...
/Type /XObject
/BitsPerComponent 8
/ColorSpace /DeviceRGB
/Filter [ /RunLengthDecode ]
/Height 522
/Length 317714
/Name /Im0
/SMask 8 0 R
/Subtype /Image
/Width 378
/Type /XObject
/BitsPerComponent 8
/ColorSpace /DeviceRGB
/Filter [ /DCTDecode ]
/Height 4350
/Length 649502
/Name /Im0
/Subtype /Image
/Width 3150
答案 0 :(得分:0)
这是一个解决方法:替换 过程:convert => :PDF 同 过程:convert_to_pdf
并添加
def convert_to_pdf # copied from carrierwave code base
# @format = :pdf # this line causes the problem... why?
manipulate! do |img|
img.format(:pdf)
img
end
end
换句话说,创建自己的转换函数,它没有@format =:pdf,这就是造成问题的原因。 @format =:pdf我相信只有你一起链接操作才需要。