2012-07-22 44 views
6

有谁知道如何用Paperclip上传多页PDF并将每个页面转换为Jpeg?如何上传多页PDF并使用Paperclip将其转换为JPEG?

到目前为止,每次我上传PDF时,它只允许我将PDF的第一页看作JPEG。但我希望能够将PDF中的每一页上传并转换为JPEG格式。

是否有任何宝石或插件可以帮助我在数据库中上传10页PDF和转换/存储为10个JPEG文件?

我看过docsplit-images宝石,但我不确定这是最佳解决方案还是它的工作原理。

Post.rb

class Post < ActiveRecord::Base 
    belongs_to :Blogs 

    attr_accessible :content, :title, :pdf 

    has_attached_file :pdf, 
        :url => "/assets/products/:id/:style/:basename.:extension", 
        :path => ":rails_root/public/assets/products/:id/:style/:basename.:extension" 

    validates_attachment_content_type :pdf, 
     :content_type => [ 'application/pdf' ], 
     :message => "only pdf files are allowed" 
end 

_form.html.erb

<%= form_for ([@post]), :html => { :multipart => true } do |f| %> 

    <%= f.file_field :pdf %> 

<% end %> 

show.html.erb

<%= image_tag @post.pdf.url(:original) %> 
+0

当你说它只能让你看到第一页,这意味着重新从服务器上下载PDF,对吧?这种行为会让我感到意外,因为我认为Paperclip根本不会解析PDF - 它只是直接将二进制数据复制到您的服务器 - 所以对于某人解析PDF并将其截断为一页在这个过程中的某个地方。 – Matchu 2012-07-22 03:41:06

+1

@Matchu基本上,我可以在浏览器中看到PDF的第一页的图像。 我希望能够滚动浏览所有10页。无论如何要做到这一点。 – 2012-07-22 03:45:09

+0

什么是url:部分?与路径有什么不同? – Jwan622 2015-04-24 06:47:44

回答

6

使用图像标记这个是没有意义的。将image_tag更改为常规链接,即可下载并查看所有页面。

<p> 
    <%= link_to 'My PDF', @post.pdf.url %> 
</p> 
+0

我希望能够通过每个pdf页面循环显示为图库格式。或者上传时,可以将PDF转换为多个Jpegs,然后我可以以图库格式查看它们。 – 2014-12-17 22:14:36

+1

@SurgePedroza这个问题已经超过2年了,如果你有新的要求,你应该打开一个新的,而不是改变它。否则,它不太可能被看到和回答。 – 2014-12-18 12:41:47

相关问题