RAILS - 使用 GROVER 从 HTML 生成 PDF

Sve*_*ten 4 ruby-on-rails grover ruby-on-rails-6

我想使用 GROVER 从我的应用程序中将相同的 ERB/H​​TML 页面导出为 PDF。它可以工作,但生成的 PDF 似乎缺少样式和格式,似乎没有处理 CSS。

这是我在控制器中的代码:

 html_string = render_to_string(
  {
     template: 'users/show.html.erb',
     locals: { id: params[:id] }
  })

pdf = Grover.new(html_string, format: 'A4').to_pdf

respond_to do |format|
  format.html
  format.pdf do
    send_data(pdf, disposition: 'inline', filename: "Show_ID_#{params[:id]}", type: 'application/pdf')
  end
end
Run Code Online (Sandbox Code Playgroud)

我的问题是,如何说服 GROVER 也处理 CSS 文件?

小智 5

我遇到了同样的问题,我的布局是在没有 CSS 的情况下渲染的。我通过在 Grover 中添加选项解决了该问题display_url

在本地开发中,例如:

pdf = Grover.new(html_string, format: 'A4', display_url: "http://localhost:3000").to_pdf
Run Code Online (Sandbox Code Playgroud)

您需要display_url根据您的环境进行更改。

如果这不起作用,请确保html_string您正在渲染的内容实际上包含正确的标记。您可以将其呈现html_string为 HTML 以验证是否包含所有标记。