1

我想在我的应用程序中提供导出选项,该选项将导出 PDF 文件,它应该包含多线图。我如何在 ruby​​ on rails 中做到这一点。

4

2 回答 2

1

这取决于您的情况,以及您想要基于哪些内容(如果有)来呈现 PDF。一些现有的选项是:

  • PDFKit,它可以根据您现有的 HTML 文档创建 PDF
  • Prawn,这是一个用于创建 PDF 的轻量级 Ruby API

一些选项(如上面的 PDFKit 和Wicked PDF )将依赖于像wkhtmltopdf这样的外部工具来将现有的 HTML 页面呈现为 PDF,而其他选项(如 Prawn)则更多地是 Ruby 原生的,所以它真的取决于你的情况应该接受你的申请。

至于您提到的图形,如果您已经将其呈现为图像文件,则使用 HTML 到 PDF 生成选项之一可能是最简单的,但如果您想在 PDF 中自定义呈现图形context 并且还没有将它作为独立的图像,像 Prawn 这样的东西可能是最好的。

于 2013-06-05T07:28:05.323 回答
0

在我的应用程序中,我正在使用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

您可以使用或渲染您的graphsin pdf_chart_erb_file.html.erb,它只是html file to PDF按照上面给出的代码转换您的所有文件。

于 2013-06-05T07:30:12.060 回答