PDF格式的JPG / PNG错误的Rails维度

时间:2015-02-06 14:04:15

标签: ruby-on-rails pdf imagemagick paperclip

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

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位sRGB 144KB 0.300u 0:00.289

     

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

     

1565_002.pdf => test_image.png PNG 3400x4400 => 2778x3582 3400x4400 + 311 + 233 8位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位sRGB 2c 4.06KB 0.010u 0:00.020

问题出在这里 - " PNG 612x792 => 500x645 612x792 + 56 + 42"代替" PNG 3400x4400 3400x4400 + 0 + 0"。

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

我使用rails(4.0.2),paperclip(3.5.2),rmagick(2.13.4)

1 个答案:

答案 0 :(得分:0)

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

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