我正在使用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。
答案 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