我希望表格以pdf 格式显示。
我们正在使用
format.html
format.json{render json: @user}
等用于生成html,json格式
类似地
如果可以在rails ???
中有什么步骤答案 0 :(得分:7)
我认为这可能有助于[https://github.com/mileszs/wicked_pdf]
只要您的路线支持format.pdf
部分,您就可以像.:format
一样使用。所以只需使用它来捕获pdf请求。然后使用wicked_pdf
。
基本用法如下所示
def controller_action
... ... ...
... ... ...
format.pdf do
render :pdf => "file_name"
end
end
以下another article可能有助于了解其用法。
答案 1 :(得分:7)
第一步:注册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,您可以将pdfkit与wkthmltopdf,Prawn和其他一些一起使用。请参阅有关其用法的相应文档。
答案 2 :(得分:5)
另一件事是Prawn。
它似乎更强大并支持复杂的情况。所以你可以选择这个来处理复杂的事情。在这里获取http://prawn.majesticseacreature.com/manual.pdf。
答案 3 :(得分:5)
最后用prawn
和prawn-rails
完成。这是详细信息。
让我的系统准备就绪
# Add this to your Gemfile
gem 'prawn'
gem 'prawn_rails'
# run
bundle install
我点击了网址http://localhost:3000/regions
,即点击了index
的{{1}},并将该网页显示为pdf格式。
我有一个RegionsController
模型,其中包含一个属性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
这将只输出Regions的名称。
多数民众赞成。您的页面为pdf格式。现在只需使用prawn_document() do |pdf|
@regions.each {|r| pdf.text r.name}
end
和Prawn
提供的所有其他选项即可。你可以在这里找到一些 - http://prawn-rails-demo.heroku.com/
只是想写一系列博客,指导如何使用不同的pdf生成工具和rails 3。
如果它能解决您的问题,请告诉我。
答案 4 :(得分:0)
如果您需要使用模板,您可以随时使用the combine_pdf gem(它具有较小的编辑功能,例如表格和文本框),或者与上述任何解决方案一起使用,例如{{3} }。