【问题标题】:How to Upload a multipage PDF and convert it to JPEG with Paperclip?如何上传多页 PDF 并使用 Paperclip 将其转换为 JPEG?
【发布时间】:2012-07-22 03:39:24
【问题描述】:

有人知道如何使用 Paperclip 上传多页 pdf 并将每一页转换为 Jpeg 吗?

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

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

我查看了docsplit-images gem,但我不确定这是否是最佳解决方案或它是如何工作的。

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) %>

【问题讨论】:

  • 当你说它只让你看到第一页时,这意味着从服务器重新下载 PDF,对吗?这种行为会让我感到惊讶,因为我认为 Paperclip 根本不解析 PDF——它只是直接将二进制数据复制到你的服务器——所以有人解析 PDF 并将其截断为一页真的很奇怪在那个过程中的某个地方。
  • @Matchu 基本上,我可以在浏览器中看到 PDF 第一页的图像。我希望能够滚动浏览所有十页。有没有办法做到这一点。
  • url: 部分是干什么用的?它与 :path 有何不同?

标签: ruby-on-rails pdf paperclip jpeg docsplit


【解决方案1】:

为此使用图像标签是没有意义的。将您的 image_tag 更改为常规链接,您将能够下载和查看所有页面。

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

【讨论】:

  • 我希望能够循环浏览每个 pdf 页面以画廊格式显示。或者在上传时,能够将 PDF 转换为多个 Jpeg,以便我可以以图库格式查看它们。
  • @SurgePedroza 这个问题已经超过 2 年了,如果你有新的要求,你应该打开一个新的而不是改变它。否则就不太可能被看到和回答。
猜你喜欢
  • 2017-01-23
  • 2011-05-16
  • 2015-02-28
  • 1970-01-01
  • 1970-01-01
  • 2012-09-18
  • 1970-01-01
  • 2019-08-03
  • 2021-01-01
相关资源
最近更新 更多