Moh*_*ikh 4 pdf render report ruby-on-rails-3
我希望表格以pdf格式显示.
我们正在使用
format.html
format.json{render json: @user}
Run Code Online (Sandbox Code Playgroud)
等用于生成html,json格式
同样
那么如果有可能在轨道上有什么步骤???
我认为这可能会有所帮助[ https://github.com/mileszs/wicked_pdf ]
format.pdf
只要您的路线支持.:format
部分,您将始终能够使用.所以只需使用它来捕获pdf请求.然后使用渲染pdf wicked_pdf
.
基本用法如下所示
def controller_action
... ... ...
... ... ...
format.pdf do
render :pdf => "file_name"
end
end
Run Code Online (Sandbox Code Playgroud)
这是另一篇文章可能有助于理解其用法.
第一步:注册PDF类型以在respond_to块中使用
# config/mime_types.rb
Mime::Type.register "application/pdf", :pdf
Run Code Online (Sandbox Code Playgroud)
第二步:在你的控制器中响应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
Run Code Online (Sandbox Code Playgroud)
要生成PDF,您可以使用pdfkit和wkthmltopdf,Prawn等.请参阅相应的文档说明其用法.
最后完成了prawn
和prawn-rails
.这是详细信息.
使我的系统准备好
# Add this to your Gemfile
gem 'prawn'
gem 'prawn_rails'
# run
bundle install
Run Code Online (Sandbox Code Playgroud)
我打的网址http://localhost:3000/regions
即打index
的RegionsController
,它显示的页面为PDF格式.
我有一个Region
具有单一属性的模型name
.表中有两个条目regions
.
[
#<Region id: 1, name: "Region 1", ... >,
#<Region id: 2, name: "Region 2", ... >
]
Run Code Online (Sandbox Code Playgroud)
我的控制器方法:
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
Run Code Online (Sandbox Code Playgroud)
我在中创建了一个视图文件views/regions/index.pdf.prawn
.无论如何,视图文件名格式是:action.pdf.prawn
,视图文件包含
prawn_document() do |pdf|
@regions.each {|r| pdf.text r.name}
end
Run Code Online (Sandbox Code Playgroud)
这将只输出Regions的名称.
而已.您的页面为pdf格式.现在只需使用Prawn
和提供的所有其他选项Prawn-Rails
.你可以在这里找到一些 - http://prawn-rails-demo.heroku.com/
只是想写一系列博客,指导如何使用不同的pdf生成工具与rails 3.
如果它能解决您的问题,请告诉我.
归档时间: |
|
查看次数: |
21630 次 |
最近记录: |