如何在ROR(Ruby)中显示PDF?

我在网上浏览过,但似乎无法找到如何在rails中显示PDF(我只能找到关于如何创建一个的信息)。

有谁知道我需要展示一个代码/宝石吗?


在你的控制器中:

def pdf
  pdf_filename = File.join(Rails.root, "tmp/my_document.pdf")
  send_file(pdf_filename, :filename => "your_document.pdf", :type => "application/pdf")
end

config/environment/production.rb

config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache

要么

config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx

配置修改是必需的,因为它使Web服务器能够直接从磁盘发送文件,从而提高性能。

更新

如果要显示它而不是下载它,请使用send_file :disposition选项:

send_file(pdf_filename, :filename => "your_document.pdf", :disposition => 'inline', :type => "application/pdf")

如果你想在线显示它,这个问题将会更加完整,我可以做到。


基本上你只需要把它写在你的视图中的html中。 所以这个简单的解决方案为我工作:

在'show.hmtl.erb'

<iframe src=<%= @certificate.certificate_pdf %> width="600" height="780" style="border: none;"> </iframe>

只需将文件位置嵌入到嵌入式ruby中,作为iframe标记的源代码,即可在经过数小时和数小时的搜索后为我工作。 'certificate'是我的模型,'certificate_pdf'是我的附件。


根据PDF的来源,以下内容可能对您有所帮助。 我有一个应用程序,用于存储很多东西,其中一些还有(附加的)PDF连接到这些项目。 我将这些项目存储在/public/res/<item_id>/res表示结果, item_id是Rails中该项的数字标识。

在视图中,我通过以下(伪代码)作为助手方法提供了PDF的链接,可以在视图中使用该方法:

def file_link(key, name = nil)
  res= Ressource.find(:first, :conditions => ["key = ?", key])
  list = Dir["public/res/#{res.id}/*"]
  file= list.empty? ? "" : list[0]
  return file if file.empty?
  fn = name ? name : File.basename(file)
  link_to fn, "/res/#{res.id}/#{File.basename(file)}", :popup => true
end

这里的相关部分是link_to name, "/res/#{res.id}/#{File.basename(file)}"东西。

链接地址: http://www.djcxy.com/p/36457.html

上一篇: How do I display a PDF in ROR (Ruby)?

下一篇: Open links made by createObjectURL in IE11