如何使用carrierwave为第一个pdf页面创建缩略图

Art*_*hur 12 file-upload ruby-on-rails carrierwave

我正在以这种方式处理PDF文件的缩略图:

  version :thumb do
    process :resize_to_limit => [260, 192]
    process :convert => :jpg
    process :set_content_type
  end

  def set_content_type(*args)
    self.file.instance_variable_set(:@content_type, "image/jpeg")
  end
Run Code Online (Sandbox Code Playgroud)

但是当PDF文件是多页时,它会在一个jpg文件中为所有页面生成缩略图.有没有办法只为第一页制作缩略图?

Tan*_*ili 15

我今年早些时候提交了一个补丁来做这件事.使用自定义处理器:

def cover 
  manipulate! do |frame, index|
    frame if index.zero?
  end
end

process :cover
Run Code Online (Sandbox Code Playgroud)


eve*_*man 8

Tanzeeb的绝佳解决方案!谢谢.

所以我可以这样做:

 def cover 
    manipulate! do |frame, index|
      frame if index.zero?
    end
  end   
Run Code Online (Sandbox Code Playgroud)

并将其用于拇指生成

  version :thumb do
    process :cover    
    process :resize_to_fill => [50, 50, Magick::NorthGravity]
    process :convert => 'png'
  end
Run Code Online (Sandbox Code Playgroud)

大!