2013-04-25 3 views
3

У меня есть модуль, который имеет функциональность вложений, которая загружает pdf-файлы. Мне нужно отобразить сохраненный pdf-файл в приложении в браузере/iframe и не загружать его. Есть ли драгоценный камень или шанс, который будет показывать/читать pdf-файлы в рельсах.Показать прилагается pdf в браузере в iframe - rails

Примечание: ПРВ будет содержать изображения, содержание текста и т.д.

Заранее спасибо

Ранджит

+1

Попробуйте открыть в браузере See pdf file и вы можете прочитать/показать файлы PDF. – visnu

ответ

5

да, есть драгоценный камень назван Креветки в GitHub. Check это.

Но существует более гибкий способ реализации этой функции с помощью Документов Google. Вы можете вставлять свой pdf-файл в Google Viewer.

Просто:

<a href="https://docs.google.com/gview?url={YOUR_PDF_URL}&embedded=true">Your Pdf Viewer</a> 

Спасибо.

+0

Спасибо, это помогло мне. – Ranzit

+0

добро пожаловать. :) – rony36

3

В контроллере определить функцию, как в следующем:

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 

В ваш файл конфигурации (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 

Модификация конфигурации позволяет веб-серверу отправлять файл непосредственно с диска.

Вы можете посмотреть на этот вопрос Recommended way to embed PDF in HTML?

+0

Спасибо, это было полезно для меня. – Ranzit

2

Я использовал следующий код, чтобы сделать шахтное работу в представлении (с примером объекта @person), используя самые последние Google Docs embedded pdf code specifications:

<iframe src="https://docs.google.com/viewer?url=http://www.mysite.com/<%= @person.pdf.url %>&embedded=true" 
width="100%" height="800" > 
<p>Your browser does not support iframes.</p> 
</iframe> 
1

Вот пример 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")}" %> 

<iframe src="http://docs.google.com/gview?url=<%= url %>&embedded=true" style="width:1170px; height:800px;" frameborder="0"></iframe> 

Вам также может понадобиться добавить вам путь актива, если вы уже не имеете (в application.rb):

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

Это работает для меня:

В «шоу .hmtl.erb»

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

просто поставить встроенный рубин файла в качестве источника работал для меня через несколько часов и часы поиска. «сертификат» - моя модель, а «certificate_pdf» - это файл вложения.

1

Это работает для меня:

<iframe src="http://docs.google.com/viewer?url=<%= u @model.modeldoc %>&embedded=true" width="600" height="780" style="border: none;"></iframe> 

«У» является метод рубин, который превращает, что делает URL URL-закодирован (который документ Google для просмотра требуется). Это была проблема, с которой я столкнулся с ответом CodeBiker. более

информация о «и» - http://rdoc.info/stdlib/erb/1.8.7/ERB/Util%3aurl_encode

Смежные вопросы