在iframe – rails中的浏览器中显示附加的pdf

我有模块,它具有上传pdf文件的附件function。 我需要在浏览器/ iframe中的应用程序中显示存储的pdf,而无需下载。 是否有gem或机会在rails中显示/读取pdfs。

注意:pdfs将包含图像,文本内容等。

提前致谢

兰吉特

是的,有一个gem在github中被命名为Prawn。 看看吧。

但是,使用Google Docs可以更灵活地实现此function。 您可以使用google docs viewer嵌入pdf。

只是:

Your Pdf Viewer 

谢谢。

在您的控制器中定义如下函数:

 def show_pdf pdf_filename = File.join(Rails.root, "tmp/my_pdf_doc.pdf") send_file(pdf_filename, :filename => "your_document.pdf", :disposition => 'inline', :type => "application/pdf") end 

在您的环境config(developemnt.rb / production.rb)文件中:

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

配置修改使Web服务器可以直接从磁盘发送文件。

你可以看一下这个问题在HTML中嵌入PDF的推荐方法吗?

这对我有用:

在’show.hmtl.erb’中

  

只需将文件的嵌入式ruby作为源码工作,经过数小时的搜索后我就可以使用。 ‘certificate’是我的模型,’certificate_pdf’是我的附件文件。

我使用以下代码在视图中使用最新的Google Docs嵌入式pdf代码规范在视图中(使用示例对象@person ):

  

以下是PDF iframe的示例:

http://googlesystem.blogspot.com/2009/09/embeddable-google-document-viewer.html

只需将xyz.pdf更改为所需的文件名:

 <% url = "#{request.protocol}#{request.host_with_port}#{asset_path("xyz.pdf")}" %>  

如果您还没有(在application.rb中),您可能还需要添加资产路径:

 config.assets.paths << "#{Rails.root}/app/assets/pdf" 

这对我有用:

  

“u”是一种ruby方法,它会使url编码(谷歌文档查看器需要)。 这是我在CodeBiker的回答中遇到的问题。

关于“你”的更多信息 – http://rdoc.info/stdlib/erb/1.8.7/ERB/Util%3aurl_encode