ruby-on-rails – Paperclip&RMagick – PDF和重命名的3页缩
发布时间:2020-12-17 01:28:40 所属栏目:百科 来源:网络整理
导读:我想上传pdf文件,并创建(作为单独的文件)缩略图图像,其中PDF的前3页水平对齐. 我设法用RMagick做一个Paperclip处理器来生成该文件,但问题是:我希望单独的文件(带有缩略图样式的文件)具有正确的扩展名(例如jpg)而不是原始的pdf. 如果我仍然可以通过使用带样
我想上传pdf文件,并创建(作为单独的文件)缩略图图像,其中PDF的前3页水平对齐.
我设法用RMagick做一个Paperclip处理器来生成该文件,但问题是:我希望单独的文件(带有缩略图样式的文件)具有正确的扩展名(例如jpg)而不是原始的pdf. 如果我仍然可以通过使用带样式的url方法获得正确的路径,那将是很好的,例如: >> attachment.url => "/some/path/id/original/test.pdf" # original file >> attachment.url(:pdf_thumbnail) => "/some/path/id/pdf_thumbnail/test.jpg" # jpg file,not pdf 一些代码: 处理器 module Paperclip class PdfThumbnail < Processor def initialize(file,options = {},attachment = nil) super @file = file @instance = options[:instance] @current_format = File.extname(@file.path) @basename = File.basename(@file.path,@current_format) end def make dst = Tempfile.new([@basename,'jpg'].compact.join(".")) dst.binmode pdf = ::Magick::ImageList.new(File.expand_path(@file.path)) image = pdf[0..2].append(false) image.format = 'JPG' image.write(File.expand_path(dst.path)) dst.flush return dst end end end 型号(提取) has_attached_file :file,:styles => {:pdf_thumbnail => ""},:processors => [:pdf_thumbnail] 它结束于: $tree . . `-- 46 |-- original | `-- test.pdf `-- pdf_thumbnail `-- test.pdf 和: $file 46/original/test.pdf 46/original/test.pdf: PDF document,version 1.4 $file 46/pdf_thumbnail/test.pdf 46/pdf_thumbnail/test.pdf: JPEG image data,JFIF standard 1.01 所以文件很好,但我想要pdf_thumbnail样式的不同扩展名. 有帮助吗?或者也许是另一种方式/清洁代码? 解决方法
我没试过这个,但怎么样:
has_attached_file :file,:styles => { :pdf_thumbnail => ["",:jpg] } ... 根据Paperclip文档,数组中的第二项应该强制格式化,尽管它没有指定它是否也适用于自定义处理器.但值得一试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |