我想在我的应用程序中提供导出PDF文件的导出选项,它应该包含多行图。我怎样才能在轨道上的红宝石中做到这一点。
答案 0 :(得分:1)
这取决于您的情况,以及您希望以何种方式呈现PDF的内容(如果有)。一些现有选项是:
某些选项(如上面的PDFKit以及Wicked PDF)将依赖于wkhtmltopdf之类的外部工具将现有HTML页面呈现为PDF,而其他选项(如Prawn)则更具Ruby原生性,所以这取决于你的情况你应该在你的申请中采取哪种方式。
至于您提到的图表,如果您已将其呈现为图像文件,则最简单的方法是使用HTML-to-PDF生成选项之一,但如果您想要将图表呈现为自定义在PDF上下文中并没有将它作为一个独立的图像,像Prawn这样的东西可能是最好的。
答案 1 :(得分:0)
在我的申请中,我使用Highcharts
。
我发现使用2个宝石的组合渲染charts to pdf
非常成功:
wicked_pdf
- https://github.com/mileszs/wicked_pdf
和
wkhtmltopdf-binary
- https://github.com/zakird/wkhtmltopdf_binary_gem
第二个是wicked_pdf的二进制依赖。
它可以以pdf格式呈现您的rails视图。
修改强>
我也使用过PDFkit,下面是我的控制器方法代码:
点击"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
中使用或呈现pdf_chart_erb_file.html.erb
,只需按照上面给出的代码转换所有html file to PDF
文件。