我想在我的应用程序中提供导出选项,该选项将导出 PDF 文件,它应该包含多线图。我如何在 ruby on rails 中做到这一点。
2 回答
这取决于您的情况,以及您想要基于哪些内容(如果有)来呈现 PDF。一些现有的选项是:
一些选项(如上面的 PDFKit 和Wicked PDF )将依赖于像wkhtmltopdf这样的外部工具来将现有的 HTML 页面呈现为 PDF,而其他选项(如 Prawn)则更多地是 Ruby 原生的,所以它真的取决于你的情况应该接受你的申请。
至于您提到的图形,如果您已经将其呈现为图像文件,则使用 HTML 到 PDF 生成选项之一可能是最简单的,但如果您想在 PDF 中自定义呈现图形context 并且还没有将它作为独立的图像,像 Prawn 这样的东西可能是最好的。
在我的应用程序中,我正在使用Highcharts
.
我在charts to pdf
使用 2 个 gem 的组合进行渲染方面取得了巨大的成功:
wicked_pdf
- https://github.com/mileszs/wicked_pdf
和
wkhtmltopdf-binary
- https://github.com/zakird/wkhtmltopdf_binary_gem
第二个是 wicked_pdf 的二进制依赖项。
它可以以 pdf 格式呈现您的 Rails 视图。
编辑:
我也使用过 PDFkit,下面是我的控制器方法中的代码:
Onclick"Download PDF"
按钮:
if params[:commit]=="Download PDF"
html = render_to_string(:layout => false , :action => "controller_name/pdf_chart_erb_file.html.erb")
kit = PDFKit.new(html)
kit.stylesheets << "#{Rails.root}/app/assets/stylesheets/application.css"
send_data(kit.to_pdf, :filename => "my_chart.pdf", :type => 'application/pdf', :disposition => 'inline')
file = kit.to_file("#{Rails.root}/app/exe.pdf")
end
您可以使用或渲染您的graphs
in pdf_chart_erb_file.html.erb
,它只是html file to PDF
按照上面给出的代码转换您的所有文件。