有没有人知道PDF编写器很容易并且适用于Rails 3?如果是这样,有人可以指向我,并指示如何配置它以使用Rails 3?
答案 0 :(得分:2)
在Rails中主要有两种方法可以做pdf。
要么从头开始构建它,要么使用某些东西从html生成pdf。第二个更容易但如果你想要放在pdf中的内容更复杂,可能还不够。
如果您想要完全控制pdf,则必须从头开始构建它。为此,请使用prawn和prawnto之间的组合。
对于更容易的第二个选项,您可以使用PDFKit,它使用wkhtmltopdf直接从html页面生成pdf。我建议从这个开始,看看它是否适合你的目的;那么,如果你认为你需要更多控制而这还不够,请使用prawn。
答案 1 :(得分:2)
对于那些和我一样的人来到这里寻找使PDF :: Writer在rails 3应用程序中工作的方法,也许迁移现有的Rails 2.x应用程序,我终于实现了pdf-writer ,版本1.1.8,在rails 3.2应用程序中工作。
在 Gemfile :
中gem 'pdf-writer'
我在config / initializers / pdfwriter_template.rb
中有这个module ActionView
module Template::Handlers
class PDFWriter
def call(template)
require_engine
"pdf = ::PDF::Writer.new( :paper => 'A4' );" +
"pdf.compressed = true if Rails.env.to_s == 'production';" +
template.source +
";pdf.render"
end
protected
def require_engine
@required ||= begin
require 'pdf/writer'
require 'pdf/simpletable'
true
end
end
end
end
end
ActiveSupport.on_load(:action_view) do
ActionView::Template.register_template_handler :rpdf, ActionView::Template::Handlers::PDFWriter.new
end
然后在控制器动作中,我可以编写类似的内容:
def pdf_test
@record = Record.find(params[:id])
fileout = render_to_string :layout=>false
send_data(fileout, :type => "application/pdf", :filename => 'test_record.pdf')
end
拥有模板文件 pdf_test.rpdf :
pdf.text "Hello from record number #{@record.number}!!"
!!!!!当心:这不是目前在Rails中呈现PDF的最佳实践方式!!!!!!请改用PDFKit或Prawn !!!!!
答案 2 :(得分:1)
我会推荐虾。请在此链接http://prawn.majesticseacreature.com/
上找到有关它的更多详细信息答案 3 :(得分:1)
发布了一个在Rails中使用prawn呈现PDF的小宝石https://github.com/rtsinani/gambas
答案 4 :(得分:0)
我建议您查看Railscasts PDF episodes,那里有足够的资源。