我想让Paperclip为上传的多页PDF文件的每个页面创建2个缩略图.
我正在运行Paperclip 2.3.1.1并在我的Asset模型中使用它:
has_attached_file :asset, :styles => { :medium => "800x600>", :thumb => "100x100>" }
所以,当我上传一个3页的pdf文件时,我希望每页创建2个大拇指(一个在800x600,一个小图像在100x100).相反,我得到了3个文件夹(拇指,中等,原始) - 原始文件夹包含origianl pdf文件,而拇指和媒体各包含一个pdf,只有pdf的第一页所有像素化.
我需要做些什么才能让回形针为pdf的每一页创建2个拇指?理想情况下,我想像这样每页一个图像(创建6个图像):
资产/ 1 /中/文件0.png
资产/ 1 /中/文件1.png
资产/ 1 /中/文件2.png
资产/ 1 /拇指/文件0.png
资产/ 1 /拇指/文件1.png
资产/ 1 /拇指/文件2.png
有谁知道如何做到这一点?我需要定制处理器吗?如果是这样,处理器会是什么样子?
谢谢.
这是我如何实现类似的任务.
文件型号:
class Document < ActiveRecord::Base has_many :pages, :dependent => :destroy has_attached_file :asset after_asset_post_process :make_pages private def make_pages if valid? Paperclip.run('convert', "-quality #{Page::QUALITY} -density #{Page::DENSITY} #{asset.queued_for_write[:original].path} #{asset.queued_for_write[:original].path}%d.png") images = Dir.glob("#{asset.queued_for_write[:original].path}*.png").sort_by do |line| line.match(/(\d+)\.png$/)[1].to_i end images.each do |page_image| pages.build(:asset => File.open(page_image)) end FileUtils.rm images end end end
页面模型:
class Page < ActiveRecord::Base belongs_to :document has_attached_file :asset QUALITY = 100 DENSITY = '80x80' end