-1

我在控制器中有以下操作

def save
  client = Pdfcrowd::Client.new("asdads", "asdads")

  pdf = client.convertHtml(params[:gender])

  send_data(pdf, 
            :filename => "untitled.pdf",
            :type => "application/pdf",
            :disposition => "attachment")
rescue Pdfcrowd::Error => why
  render :text => why
end

我想从视图中获取 Html 代码,然后将其转换为 pdf

我正在使用 pdfcrowd gem

在我看来,我也有这一行:

<% params[:gender => compareGender(@task) ] %>

compareGender 是一个返回 svg 代码的方法

这不起作用有人可以提出替代解决方案吗?

4

1 回答 1

0

你有两个选择。您可以使用 Rails 的 render_to_string 方法将渲染视图转换为字符串变量,然后您可以将其转换为 PDF,或者您可以跳过 rails 的渲染并直接使用 Erb 库将视图渲染为字符串。我认为后者可能更适合您,并且还可以保护您免受 rails 可能对 render_to_string API 所做的任何更改。

如果您的视图在 Haml 而不是 Erb 中,则只需使用 haml 来渲染它们。

于 2013-04-09T19:09:00.283 回答