6

我希望表格以pdf格式显示。

我们正在使用

format.html
format.json{render json: @user}

等用于生成 html ,json 格式

相似地

  • 我想将页面呈现为 pdf 。

那么如果可以在rails中执行哪些步骤???

4

5 回答 5

14

第一步:

注册 PDF 类型以在 respond_to 块中使用

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

第二步:

在您的控制器中响应 PDF 格式请求

respond_to do |format|
    format.html
    format.json{render json: @user}
    format.pdf do
        # ...
        # here your PDF generating code
        # ...
        send_data(your_generated_pdf, filename: 'your_filename.pdf', type: 'application/pdf')
    end
end

要生成 PDF,您可以将pdfkitwkthmltopdf、 Prawn 等一起使用。有关其用法,请参阅各自的文档。

从 Rails 5 开始:

第三步:

添加gem 'responders'为 Rails 5 更改日志说:“删除 respond_to/respond_with 占位符方法,此功能已提取到响应者 gem”

于 2016-12-25T13:47:00.767 回答
7

我认为这可能会有所帮助 [ https://github.com/mileszs/wicked_pdf ]

format.pdf只要您的路线支持.:format部分,您将始终能够使用like 。因此,只需使用它来捕获对 pdf 的请求。然后使用wicked_pdf.

基本用法如下所示

def controller_action
    ... ... ...
    ... ... ...
    format.pdf do
        render :pdf => "file_name"
    end
end

这是另一篇文章可能有助于理解用法。

于 2012-08-25T08:15:30.790 回答
7

另一件事是

它似乎更健壮并支持复杂的情况。所以你可以选择这个来处理一些复杂的事情。在此处获取https://prawnpdf.org/manual.pdf。API 文档:https ://prawnpdf.org/api-docs/2.3.0/

感谢格伦指出。

于 2012-08-25T08:30:49.110 回答
5

最后它完成了prawnand prawn-rails。这是详细信息。

准备好我的系统

# Add this to your Gemfile
gem 'prawn'
gem 'prawn_rails'

# run
bundle install

我点击 urlhttp://localhost:3000/regions即点击indexofRegionsController并将页面显示为 pdf 格式。

我有一个Region具有单个属性的模型name。表中有两个条目regions

[
 #<Region id: 1, name: "Region 1", ... >,
 #<Region id: 2, name: "Region 2", ... >
]

我的控制器方法:

def index
    @regions = Region.all # Should return two region objects :)

    respond_to do |format|
        format.html # index.html.erb
        format.json { render json: @regions }
        format.pdf    # <---------- This will handle the pdf response
    end
end

我在views/regions/index.pdf.prawn. 无论如何,视图文件名格式是:action.pdf.prawn并且视图文件包含

prawn_document() do |pdf|
    @regions.each {|r| pdf.text r.name}
end

这将只输出区域的名称。

就是这样。您的页面为 pdf 格式。现在只需使用 和 提供的所有其他Prawn选项Prawn-Rails。你可以在这里找到一些 - http://prawn-rails-demo.heroku.com/

只是想写一系列博客来指导如何在 rails 3 中使用不同的 pdf 生成工具。

让我知道它是否能解决您的问题。

于 2012-08-25T14:56:30.677 回答
0

如果您需要使用模板,您始终可以单独使用combine_pdf gem(它具有较小的编辑功能,例如表格和文本框)或与上述任何解决方案一起使用,例如Prawn

于 2015-05-07T21:27:13.617 回答