【问题标题】:wicked_pdf on Rails 4 not generating pdfRails 4上的wicked_pdf不生成pdf
【发布时间】:2014-12-29 17:08:31
【问题描述】:

我的设置:MacOS X 10.10.1 上本地的 Rails 4.1.1 和 ruby​​ 2.1.1p76 以及 Heroku 上的 prod。

我安装了gem 'wicked_pdf'gem 'wkhtmltopdf-binary'

config/initializers/mime_types.rb,我添加了:

Mime::Type.register "application/pdf", :pdf

config/initializers/wicked_pdf.rb,我都试过了:

 :exe_path => '/usr/local/bin/wkhtmltopdf'

:exe_path => '#{Rails.root}/bin/wkhtmltopdf'

当我在终端运行时

$ wkhtmltopdf http://google.com google.pdf

从我的应用程序目录中,它会生成一个 pdf 文件。所以我假设 wkhtmltopdf 设置正确。

我的object_controller.erb 包含:

def print_view
  @teams = [Team.find(params[:team_id])]
  respond_to do |format|
    format.html
    format.pdf do
      render :pdf         => "file_name",
             :layout      => "/layouts/print_layout.html.erb"
    end
  end
end

我的views/layouts/print_layout.html.erb(为了清楚起见缩短):

<!DOCTYPE html>
  <head>
    <meta charset="utf-8" />
    <%= wicked_pdf_stylesheet_link_tag('print', :media => :print) %>
  </head>
  <body class="<%= controller_name %> <%= action_name%>">
    <%= yield %>
  </body>
</html>

还有我的views/object/print_view.html.erb(为了清楚起见,请缩短):

<div id="schedule-tables">
    <%= render 'weekview_print' %>
</div>

我有两个问题:

  1. 我得到的是 html 页面,而不是 pdf
  2. 页面使用的是默认布局,而不是指定的布局

【问题讨论】:

    标签: ruby-on-rails-4 wkhtmltopdf wicked-pdf


    【解决方案1】:

    您应该将视图重命名为 print_view.pdf.erb,因为您在控制器中允许这两种格式

    为了获取 pdf,您还可以使用 .pdf 扩展名调用相同的 url,例如 /objects/print_view.pdf

    【讨论】:

    • 我将视图重命名为 print_view.pdf.erb。现在我得到Missing partial shifts/_weekview_print。是因为我需要在 link_to (你的第二点)中指定 pdf 格式吗?我试过&lt;%= link_to print_view_object_url(start_date: params[:start_date], team_id: team.id, :format =&gt; 'pdf'), :target =&gt; '_blank' do %&gt;。但是我的语法是错误的......
    • 取得进展。 link_to 语法没问题。问题被继承,部分被命名为weekview_print.html.erb;将其更改为 weekview_print.pdf.erb。
    • 我遇到了 wkhtmltopdf 的路径错误。解决方案是不在 wicked_pdf 初始化程序中配置路径。
    猜你喜欢
    • 2016-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多