Rails wicked_pdf,将页面转换为pdf

时间:2015-10-15 14:05:45

标签: ruby ruby-on-rails-4 wicked-pdf

我有一个普通的Rails布局,这是我的普通网站。

我想在此页面上使用一个按钮将此页面转换/转换为 一个PDF文件。

我想用这个宝石来做: https://github.com/mileszs/wicked_pdf

我将gem 'wicked_pdf'添加到我的Gemfile中,但现在我该如何转换实际页面?

2 个答案:

答案 0 :(得分:7)

以下是我使用wicked_pdf所做的事情:

# Gemfile
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary' # if you need the binary too

然后运行

$ bundle install
$ (bundle exec) rails g wicked_pdf    # generates the initializer

然后,您可以在config/initializers/wicked_pdf.rb中配置全局设置,如github上的邪恶自述文件中所述。

Rails 4已经知道pdf mime类型,但在旧版本中,您可能需要将pdf注册为mime类型:

# config/initializers/mime_types.rb
Mime::Type.register "application/pdf", :pdf

在您的控制器中

respond_to do |format|
  format.html
  format.pdf do
    render  pdf: "your-filename"
  end
end

然后,您将app/views/<your-view>/<controller-action>.pdf.erb下的视图与您想要的内容放在一起。

要通过链接引用此内容,您可以执行以下操作:

 = link_to "Get PDF", your_path(format: :pdf)

这会解决您的问题吗?

答案 1 :(得分:4)

请点击以下链接。它是一个细节教程,这将使您的生活更轻松:

http://dchua.com/2014/10/30/generate-pdfs-with-html-templates-in-rails/

注意

如果您不想单独使用pdf视图并希望使用相同的html视图,请使用

template: invoices/show.html.erb

而不是

template: invoices/show.pdf.erb