wicked_pdf, невозможно отобразить pdf
Я пытаюсь сгенерировать PDF-файл, используя wicked_pdf, но получаю сообщение об ошибке "Невозможно отобразить шаблон". Я следовал руководству wicked_pdf, но застрял. Любая помощь приветствуется.
URL:
http://localhost:3000/app/letters/1.pdf
приложение / контроллеры / приложения / letters_controller.rb:
def show
respond_to do |format|
format.html
format.pdf do
render pdf: "Letters" # Excluding ".pdf" extension.
end
end
end
Показать ссылку на страницу:
<li><a href="<%= app_letter_path(@letter, format: :pdf) %>" target="_blank"> Print</a></li>
приложение / просмотров / приложение / письма / show.pdf:
<!doctype html>
<html>
<head>
</head>
<body>
<div>
<p>test</p>
</div>
</body>
</html>
Gemfile:
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
Ошибка:
Не удалось загрузить документ PDF.
1 ответ
Решение
Wicked PDF Checkout здесь для доступных вариантов
- Создать макет для документа PDF в
views/layouts/pdf.html.erb
<!DOCTYPE html> <html> <head> <title>My PDF</title> <%#= wicked_pdf_stylesheet_link_tag "style" -%> </head> <body> <div class='my_container'> <%= yield %> </div> </body> </html>
2- В контроллере (Вы должны добавить опцию как disposition: 'inline'
открыть в новой вкладке)
def show
respond_to do |format|
format.pdf do
render pdf: "show",
disposition: 'inline',
stream: false,
layout: 'layouts/pdf.html.erb'
end
end
end
3 - имя документа в формате PDF html должно заканчиваться .erb
то есть app/views/app/letters/show.pdf.erb
<div>
<p>test</p>
</div>