错误" std :: bad_alloc"邪恶的pdf wkhtmltopdf

时间:2016-07-15 04:32:32

标签: wkhtmltopdf wicked-pdf

我正在使用wickedpdf gem在我的rails应用程序中生成pdf。除少数生产请求失败外,每件事都正常运行,并出现以下错误日志。

  

错误:执行失败:   [" / usr / local / bin / wkhtmltopdf"," -q"," - page-size"," A4",& #34; - margin-top"," 20"," - margin-bottom"," 25"," - 保证金-left"," 0"," - margin-right"," 0"," - footer-spacing", " 5"," - footer-html"," file:////tmp/wicked_footer_pdf20160714-2229-1bb7qcg.html" ;," file :////tmp/wicked_pdf20160714-2229-18kjik5.html" ;," /tmp/wicked_pdf_generated_file20160714-2229-1t66b4y.pdf"]   错误:无法生成PDF!    命令错误:在抛出' std :: bad_alloc'

的实例后终止调用

我无法在本地/舞台上重现这一点。

以下是我的设置: 生产服务器在AWS-EC2上的Centos 7上运行。复制whtmltopdf二进制文件,将Linux 64位从http://wkhtmltopdf.org/downloads.html复制到/usr/local/bin/wkhtmltopdf,版本为0.12.0。添加了Wickedpdf的初始化程序,指向wkhtmltopdf。

2 个答案:

答案 0 :(得分:1)

我们遇到了与wkhtmltopdf-0.12.2.1相同的问题。 PDF也呈现得很慢

wkhtmltopdf v0.12.0-0.12.2使用高分辨率(约1200dpi)来打印导致渲染速度慢的PDF。在版本0.12.3中,分辨率降至72dpi,从而修复了性能问题(详见this issue

升级到v0.12.4.0修复了Command Error: terminate called after throwing an instance of 'std::bad_alloc'

答案 1 :(得分:0)

我遇到了同样的问题,@ Hirurg103回答我对解决方法有了一个想法:我为我的pdf设置了dpi属性并且它有效

  respond_to do |format|
    format.html
    format.pdf do
      render pdf: "my-report, dpi: 75
    end
  end