首页 > 解决方案 > RAILS - 使用 GROVER 从 HTML 生成 PDF

问题描述

我想使用 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

我的问题是,我怎样才能说服 GROVER 也处理 CSS 文件?

标签: ruby-on-railsruby-on-rails-6grover

解决方案


我有同样的问题,我的布局是在没有 CSS 的情况下呈现的。我能够通过display_url在 Grover 中添加选项来解决问题。

在本地开发中,例如:

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

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

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


推荐阅读