wkhtmltopdf与wicked_pdf问题?

时间:2014-11-19 14:07:32

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

我使用wkhtmltopdf(0.10.0 rc2)和wicked_pdf(0.9.9)生成pdf报告。 在运行时我收到以下错误。

RuntimeError (Error: Failed to execute:
["/usr/bin/wkhtmltopdf", "-q", "--page-size", "A4", "--margin-top", "5", "--margin-bottom", "10", "--margin-left", "5", "--margin-right", "5", "file:////tmp/[\"wicked_pdf\", \".html\"]21873-0", "/tmp/[\"wicked_pdf_generated_file\", \".pdf\"]21873-0"]
Error: PDF could not be generated!
 Command Error: Error: Failed loading page file:////tmp/["wicked_pdf", ".html"]21873-0 (sometimes it will work just to ignore this error with --load-error-handling ignore)
)

我的控制器是:

render :pdf => "#{@note_name}",:layout => '/layouts/pdf_template.html.erb', :template=>'pdf/financial/maintenance_exp/maintenance_exp_pdf.html.erb'

任何帮助都将不胜感激。

仅供参考:我这样做的时候 :show_as_html =>真  它没有抛出任何错误。在浏览器中呈现html。

3 个答案:

答案 0 :(得分:1)

我遇到了同样的错误并按照此处的指示修复了

https://github.com/mileszs/wicked_pdf/issues/157

即我通过将gemfile条目更改为:

切换到gem的临时修复
gem 'wicked_pdf', github: 'mileszs/wicked_pdf'

但请注意,在我的情况下,问题是Windows上的文件位置有file://而不是file:/// - 所以它可能对你没有帮助。另一方面,它是相同的错误消息,所以可能值得一试。

答案 1 :(得分:0)

类似的错误,我正在尝试使用WickedPdf.new.pdf_from_html_file

我最终使用WickedPdf.new.pdf_from_string和以下帮助程序来生成呈现的html字符串:

  def pdf_html
    ApplicationController.renderer.new.render(
      template: 'purchase_orders/pdf.html.erb',
      layout: 'layouts/pdf_layout.html.erb',
      locals: { abc: 'xyz' },
      formats: [:html]
    )
  end

显然假定存在ApplicationController

我的rails版本:6.0.1

可能会帮助其他人搜索类似错误。

答案 2 :(得分:-4)

不是解决方案,对此,但也许有帮助:wkhtmltopdf是一个实验,这是一个错误,它不再受支持。如果你想使用免费工具,我推荐给你:phantomjs。此工具还可以生成pdf:http://phantomjs.org/