代码之家  ›  专栏  ›  技术社区  ›  Ben Strachan

无法呈现pdf

  •  0
  • Ben Strachan  · 技术社区  · 6 年前

    我正在尝试生成一个pdf使用pdf,虽然得到一个错误'无法呈现模板'。我遵循了邪恶的pdf指南,但我被卡住了。感谢您的帮助。

    网址:

    http://localhost:3000/app/letters/1.pdf
    

    app/controllers/app/letters\u 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>
    

    app/views/app/letters/show.pdf:

    <!doctype html>
    <html>
      <head>
      </head>
      <body>
        <div>
          <p>test</p>
        </div>
      </body>
    </html>
    

    GEM文件:

    gem 'wicked_pdf'
    gem 'wkhtmltopdf-binary'
    

    错误:

    1 回复  |  直到 6 年前
        1
  •  0
  •   Anand    6 年前

    Wicked PDF 在这里查看可用选项

    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>