rails中的PDFKit会导致服务500错误

时间:2010-07-11 08:52:21

标签: ruby-on-rails pdf-generation pdfkit

我正试图在我的rails 2.3环境中的windows中使用pdfkit。然而,pdfkit给出一些错误导致rails加载服务错误的中间件。我该怎么办?有没有PDFkit的替代方案易于使用?

我正在关注PDFKit上的Rails截屏视频。我安装了pdfkit gem,wkhtmltopdf,然后将environment.rb文件中的中间件加载为       要求'pdfkit'       config.middleware.use“PDFKit :: Middleware” 然后,当我去任何页面并添加.pdf扩展名时,我得到500服务器错误

  

/!\ FAILSAFE /!\ Sun Jul 11​​ 18:42:53 +0530 2010     状态:500内部服务器错误     私有方法chomp' called for nil:NilClass C:/Program Files/BitNami RubyStack/ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/whiny_nil.rb:52:in method_missing'       C:/ Program Files / BitNami RubyStack / ruby​​ / lib / ruby​​ / gems / 1.8 / gems / pdfkit-0.3.3 / lib / pdfkit / pdfkit.rb:69:in wkhtmltopdf' C:/Program Files/BitNami RubyStack/ruby/lib/ruby/gems/1.8/gems/pdfkit-0.3.3/lib/pdfkit/pdfkit.rb:33:in initialize'       C:/ Program Files / BitNami RubyStack / ruby​​ / lib / ruby​​ / gems / 1.8 / gems / pdfkit-0.3.3 / lib / pdfkit / middleware.rb:25:in new' C:/Program Files/BitNami RubyStack/ruby/lib/ruby/gems/1.8/gems/pdfkit-0.3.3/lib/pdfkit/middleware.rb:25:in call'       C:/ Program Files / BitNami RubyStack / ruby​​ / lib / ruby​​ / gems / 1.8 / gems / actionpack-2.3.5 / lib / action_controller / string_coercion.rb:25:in call' C:/Program Files/BitNami RubyStack/ruby/lib/ruby/gems/1.8/gems/rack-1.0.1/lib/rack/head.rb:9:in call'       C:/ Program Files / BitNami RubyStack / ruby​​ / lib / ruby​​ / gems / 1.8 / gems / rack-1.0.1 / lib / rack / methodoverride.rb:24:in call' C:/Program Files/BitNami RubyStack/ruby/lib/ruby/gems/1.8/gems/actionpack-2.3.5/lib/action_controller/params_parser.rb:15:in call'

1 个答案:

答案 0 :(得分:1)

如果您在Windows上使用pdfkit,则需要安装wkhtmltopdf。之后你需要在enviroment.rb上配置wkhtmltopdf,如下所示:D。

PDFKit.configure do |config|
   config.wkhtmltopdf = 'C:\opt\wkhtmltopdf\wkhtmltopdf.exe'
   config.default_options = {
     :page_size => 'Legal',
     :print_media_type => true
   }
   config.root_url = "http://localhost" # Use only if your external hostname is unavailable on the server.
end

我希望这会有所帮助。