pdf,wkhtmltopdf不能在Heroku上使用SVG
我有一个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版本的bug,我们必须使用wkhtmltopdf 0.9.9。
问题是,当应用程序在Heroku上推到生产时,它必须使用不同的二进制文件: wkhtmltopdf-0.9.9 Linux Static Binary(amd64)和SVG渲染似乎分崩离析。 生成PDF,但SVG图像渲染不正确。 它们只是空白或方形的“炮弹”,图像应该是。
我们尝试使用wkhtmltopdf-heroku宝石,但不断收到“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
有一种简单的方法,不需要做大量的修补和配置工作 - 对SVG文件进行Base64编码并将其内联包含在HTML中:
<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGF...>
我使用这种方法在CSS中嵌入字体,但它也适用于SVG和其他图像格式。
链接地址: http://www.djcxy.com/p/63947.html