我正在使用格罗弗渲染和下载在我的应用程序中生成的文档的pdf副本,并且在应用css时遇到了困难。当处于grover的调试模式(因此导出并呈现在铬中)时,CSS呈现的方式与我所期望的完全一样。然而,当我把它放在无头模式并下载为一个pdf,它似乎没有应用我的application.css。
PDF是使用以下方法生成的:
def purchase_order_gen(the_purchase_order, request_host_with_port)
puts "generating pdf"
puts "Generating PDF for PO " + the_purchase_order.id.to_s
puts "Host is " + request_host_with_port
html = render_to_string({
partial: '/purchase_orders/display_purchase_order',
layout: '/layouts/pdf_layout.html.erb',
locals: { po: the_purchase_order }
})
puts "html"
ap html
the_display_url = 'http://' + request_host_with_port
grover = Grover.new(html, {format: 'A4' , display_url: the_display_url})
pdf = grover.to_pdf
puts "Back From Grover!"
return pdf
end和我用下面的一行引用css,放在布局的中。
<%= stylesheet_link_tag '/assets/stylesheets/application.css'%>如果我不得不猜测的话,我会发现我的stylesheet_link_tag出错了,调试版本能够从资产管道中提取出来,而无头版本不在这里。
发布于 2021-01-04 23:09:08
结果显示,grover需要配置背景才能显示print_background: true。只是碰巧我只设置了背景,然后才意识到它不能工作,所以在我们的grover初始化器中将这个参数设置为true就成功了。
https://stackoverflow.com/questions/65526266
复制相似问题