我正在使用 Rails 3.2 和 wicked_pdf + wkhtmltopdf-binary gem,我试图在 pdf 中渲染图像,但它不起作用,
我试过了
<%= image_tag "image.png" %>
和
<img src="/assets/images/image.png">
<img src="/public/image.png">
没有成功。
除了图像之外,pdf 的其余部分渲染得很好,我做错了什么?
我正在使用 Rails 3.2 和 wicked_pdf + wkhtmltopdf-binary gem,我试图在 pdf 中渲染图像,但它不起作用,
我试过了
<%= image_tag "image.png" %>
和
<img src="/assets/images/image.png">
<img src="/public/image.png">
没有成功。
除了图像之外,pdf 的其余部分渲染得很好,我做错了什么?
wkhtmltopdf 需要知道图像文件的完整路径,并且您要提供相对文件。要么更新它们以使用完整的 URL,要么尝试使用wicked_pdf_image_tag
帮助程序。我没有尝试过后一种路线,但它应该可以解决你想要做的事情。
这是一个关于它的GH问题。
我以前处理过这个问题。我找到的解决方案是使用请求协议和主机返回图像位置,这样:
%img{src: "#{request.protocol}#{request.host_with_port}#{asset_path('image.png')}" }
%img
我使用的图像标签 ( ) 是带有haml语法的标签,这里的关键是图像的路径路径,与 html 或 haml 标签无关:
"#{request.protocol}#{request.host_with_port}#{asset_path('image.png')}"
wkhtmltopdf 就像一个外部代理:需要绝对路径。希望能帮助到你。
我有同样的问题图像没有在 pdf 中呈现,我发现wkhtmltopdf 0.12.6
引入了一项重大更改,从现在开始,默认情况下本地文件访问将被阻止,并且要启用它,我们必须明确添加enable_local_file_access: true
我们的 pdf 正在呈现的位置. 您可以按照此处的预先使用说明进行操作。