我有一个 Ruby on Rails 3.2 应用程序,它使用wicked_pdf gem 和wkhtmltopdf 0.9.9库在我的本地机器上生成 PDF,这是一个MAC OSX 10.7.5 Lion。该应用程序成功地将 HTML 页面(包括 SVG 图像)呈现为 PDF 文件,这正是我们希望应用程序完成的行为。
在本地,由于 OSX 的 11.0.0 版本存在错误,我们不得不使用 wkhtmltopdf 0.9.9。
问题是,当应用程序在 Heroku 上投入生产时,它必须使用不同的二进制文件:wkhtmltopdf-0.9.9 Linux 静态二进制文件 (amd64),并且 SVG 渲染似乎崩溃了。生成了 PDF,但 SVG 图像未正确呈现。它们只是图像应该存在的空白或方形“外壳”。
我们尝试使用wkhtmltopdf-heroku gem,但不断收到“Broken Pipe”错误。
没有与此问题相关的错误消息,我们不知道问题出在 Linux 版本上。有什么想法吗?
这是我们在config/initializers/wicked_pdf.rb
文件中的代码:
if Rails.env.staging? || Rails.env.production?
exe_path = Rails.root.join('bin', 'wkhtmltopdf-amd64').to_s
else
exe_path = Rails.root.join('bin', 'wkhtmltopdf').to_s
end