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 здесь для доступных вариантов

  1. Создать макет для документа 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>
Другие вопросы по тегам