【发布时间】:2023-03-14 17:10:01
【问题描述】:
我在 stackoverflow 上搜索了其他解决方案,但似乎没有一个与我遇到的具体问题相同。
我们在 Ruby on Rails 应用程序中使用 wicked_pdf 和 wkhtmltopdf-binary。该代码在 PDF 导出时仅针对一个特定人员失败,该特定人员与生产中的其他人(2 个节点)相比拥有大量信息,但对其他人以及在暂存中都可以正常工作。
以下是我们得到的日志:
INFO: ***************WICKED***************
INFO: Rendered application/_secondary_header.pdf.haml (3.1ms)
...
INFO: Rendered application/show.pdf.haml within layouts/pdf (804.7ms)
INFO: Rendered application/_primary_header.pdf.haml within layouts/pdf (151.8ms)
ERROR: Unable to fulfill your request RuntimeError(Failed to execute:\n"/usr/local/bin/wkhtmltopdf" -q --header-html "file:////tmp/wicked_header_pdf20140813-28740-auazsr.html" --footer-right "[page] of [topage]" --footer-font-size 9 --margin-top 30 --encoding "UTF-8" "file:////tmp/wicked_pdf20140813-28740-1vmda5h.html" "/tmp/wicked_pdf_generated_file20140813-28740-1hzlru0.pdf" \nError: PDF could not be generated!\n Command Error: )
vendor/bundle/ruby/2.1.0/gems/wicked_pdf-0.9.10/lib/wicked_pdf.rb:79:in `rescue in pdf_from_string'
vendor/bundle/ruby/2.1.0/gems/wicked_pdf-0.9.10/lib/wicked_pdf.rb:83:in `pdf_from_string'
vendor/bundle/ruby/2.1.0/gems/wicked_pdf-0.9.10/lib/wicked_pdf/pdf_helper.rb:64:in `make_pdf'
vendor/bundle/ruby/2.1.0/gems/wicked_pdf-0.9.10/lib/wicked_pdf/pdf_helper.rb:78:in `make_and_send_pdf'
vendor/bundle/ruby/2.1.0/gems/wicked_pdf-0.9.10/lib/wicked_pdf/pdf_helper.rb:21:in `render_with_wicked_pdf'
应用程序中的代码:
controller.rb
def show
render pdf: file_name,
layout: 'pdf',
margin: {
top: 30
},
header: {
html: {
template: '_primary_header.pdf.haml'
}
},
footer: {
right: I18n.t('pdf.page_description'),
font_size: 9
},
encoding: 'UTF-8'
end
系统详情:
- 导轨 4
- Ruby 2.1.0
- wicked_pdf 0.9.10
- wkhtmltopdf-二进制 0.9.9.1
注意:
- 此错误日志出现在两个生产节点上。
- 如果有人能提供有关此问题原因的任何假设,那就太好了。
我们将不胜感激。
【问题讨论】:
-
那么当您在生产机器上运行
/usr/local/bin/wkhtmltopdf" -q --header-html "file:////tmp/wicked_header_pdf20140813-28740-auazsr.html" --footer-right "[page] of [topage]" --footer-font-size 9 --margin-top 30 --encoding "UTF-8" "file:////tmp/wicked_pdf20140813-28740-1vmda5h.html" "/tmp/wicked_pdf_generated_file20140813-28740-1hzlru0.pdf"时会发生什么? -
这是我调查的一个限制。我不允许访问节点并在那里运行命令:(我正在寻找问题原因的可能假设,以便我可以先尝试在本地复制它。
标签: ruby-on-rails ruby wkhtmltopdf wicked-pdf