JPG/PNG Rails 中的 PDF 尺寸错误

PDF to JPG/PNG wrong dimensions in Rails

当我 运行 通过命令行转换时

convert -verbose -density 300 -trim -quality 100 1565_002.pdf test_image.png

效果不错。详细显示输出:

"gs" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r400x400" "-sOutputFile=/var/tmp/magick-39357qEey9jeURtmJ%d" "-f/var/tmp/magick-39357DTf85TEO2pfX" "-f/var/tmp/magick-39357aIeGxsC4sZlD" /var/tmp/magick-39357qEey9jeURtmJ1 PNG 3400x4400 3400x4400+0+0 8-bit sRGB 144KB 0.300u 0:00.289

1565_002.pdf PNG 3400x4400 3400x4400+0+0 16-bit sRGB 144KB 0.000u 0:00.000

1565_002.pdf=>test_image.png PNG 3400x4400=>2778x3582 3400x4400+311+233 8-bit sRGB 2c 39.4KB 0.410u 0:00.420

但是当通过 rails

上传 pdf 时
  has_attached_file :photo,
                # ...storage options...
                :styles => { :pdf_thumbnail => ["", :png] },
                :convert_options => { 
                  :all => '-auto-orient',
                  :pdf_thumbnail => "-verbose -density 300 -trim -quality 100"
                }  

结果很差。

Rails(回形针)+ 详细输出:

Command :: identify -format '%wx%h,%[exif:orientation]' '/var/folders/3d/td4xb1s56wxb1tcrl8rgy6tw0000gn/T/1565_00220150206-39272-wftjey.pdf[0]'

Command :: convert '/var/folders/3d/td4xb1s56wxb1tcrl8rgy6tw0000gn/T/1565_00220150206-39272-wftjey.pdf[0]' -auto-orient -verbose -density 300 -trim -quality 100 -auto-orient '/var/folders/3d/td4xb1s56wxb1tcrl8rgy6tw0000gn/T/1565_00220150206-39272-wftjey20150206-39272-1qf97j3.png'

/var/folders/3d/td4xb1s56wxb1tcrl8rgy6tw0000gn/T/1565_00220150206-39272-wftjey.pdf[0]=>/var/folders/3d/td4xb1s56wxb1tcrl8rgy6tw0000gn/T/1565_00220150206-39272-wftjey20150206-39272-1qf97j3.png PNG 612x792=>500x645 612x792+56+42 8-bit sRGB 2c 4.06KB 0.010u 0:00.020

问题在这里 - "PNG 612x792=>500x645 612x792+56+42" 而不是 "PNG 3400x4400 3400x4400+0+0"。

那么如何解决这个问题?或者我应该添加什么选项。

我正在使用 rails (4.0.2)、回形针 (3.5.2)、rmagick (2.13.4)

最后,我尝试了这些解决方案 - https://gist.github.com/bastien/3059321

还有额外的 ghostscript 设置,可以将 pdf 转换为更深的每英寸像素值(最初是 r144,我已将其更改为 r400)和其他自定义选项。