Hello, i''m newbie for pdf::writer and also for rails. I''ve put PDF::Writer on rails to use rpdf views. All ok in development mode (with webrick), ok in ./script/console test, in development and also in production environment. When I switch to production environment in apache (fcgi mode) FPFD generate well graphics, but become an arror when I wrote text (perhaps for font trouble troble?) ActionView::TemplateError (undefined method `[]'' for nil:NilClass) on line #15 15: pdf.add_text_wrap left_base, top-30, width, "Aula " I try copy environmente/development.rb to environmente/production.rb but all the same. There is some troble in fcgi mode? Bests, Tomaso --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
Austin Ziegler
2006-Sep-26 14:28 UTC
Re: PDF::Writer Switching to Production Trouble (on rails)
On 9/26/06, minni <minni-JtdkSZGDUbj2wzVTtHsWjw@public.gmane.org> wrote:> > Hello, i''m newbie for pdf::writer and also for > rails. > I''ve put PDF::Writer on rails to use rpdf views. > All ok in development mode (with webrick), ok in > ./script/console test, in development and also in > production environment. > When I switch to production environment in apache > (fcgi mode) FPFD generate well graphics, but become > an arror when I wrote text (perhaps for font trouble > troble?) > ActionView::TemplateError (undefined method `[]'' for nil:NilClass) on > line #15 > 15: pdf.add_text_wrap left_base, top-30, width, "Aula " > > I try copy environmente/development.rb to > environmente/production.rb but all the same. > There is some troble in fcgi mode?I''m not sure what would be causing this. Is it possible to get a more detailed stack trace? -austin -- Austin Ziegler * halostatue-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org * http://www.halostatue.ca/ * austin-/yODNl0JVVCozMbzO90S/Q@public.gmane.org * http://www.halostatue.ca/feed/ * austin-BGvFLPKiNqwsA/PxXw9srA@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
here the full stack trace. If I remove all pdf.add_text_wrap commands, and I leave only draw command (like pdf.fill_color(Color::RGB.from_html(''#E6E6E6;'')) pdf.rectangle(left, cur_y-4, 610, 15).fill pdf.line(left+70, cur_y-4 ,left+70, cur_y+11).stroke no error happenz Thanks, Tomaso ActionView::TemplateError (undefined method `[]'' for nil:NilClass) on line #15 of app/views/facolta/calendario/orario_aule.rpdf: 12: #if a == 8 13: pdf.start_new_page if a>1 14: #table = PDF::SimpleTable.new 15: pdf.add_text_wrap left_base, top-30, width, "Aula #{aula} I Periodo - 2 OTTOBRE - 18 NOVEMBRE 2006", 15, :center 16: cur_y=top-60 17: (1..6).each { |g| 18: pdf.fill_color(Color::RGB.from_html(''#E6E6E6;'')) /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer.rb:1540:in `char_width'' /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer.rb:1702:in `add_text_wrap'' /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer.rb:1690:in `loop'' /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer.rb:1690:in `add_text_wrap'' #{RAILS_ROOT}/app/views/facolta/calendario/orario_aule.rpdf:15:in `render'' #{RAILS_ROOT}/app/views/facolta/calendario/orario_aule.rpdf:9:in `each_index'' #{RAILS_ROOT}/app/views/facolta/calendario/orario_aule.rpdf:9:in `render'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:406:in `eval'' #{RAILS_ROOT}/vendor/plugins/pdf_render/lib/pdf_render.rb:25:in `render'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:406:in `delegate_render'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:290:in `render_template'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/base.rb:251:in `render_file'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:726:in `render_file'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:695:in `render_with_no_layout'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/layout.rb:253:in `render_without_benchmark'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:53:in `render'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:53:in `measure'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:53:in `render'' #{RAILS_ROOT}/app/controllers/facolta/calendario_controller.rb:305:in `orario_aule'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:941:in `send'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:941:in `perform_action_without_filters'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:368:in `perform_action_without_benchmark'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in `perform_action_without_rescue'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in `measure'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/benchmarking.rb:69:in `perform_action_without_rescue'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/rescue.rb:82:in `perform_action'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:408:in `send'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/base.rb:408:in `process_without_filters'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/filters.rb:377:in `process_without_session_management_support'' /usr/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/session_management.rb:117:in `process'' /usr/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:in `dispatch'' /usr/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:150:in `process_request'' /usr/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:54:in `process!'' /usr/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:53:in `each_cgi'' /usr/lib/ruby/1.8/fcgi.rb:597:in `each'' /usr/lib/ruby/1.8/fcgi.rb:597:in `each_cgi'' /usr/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:53:in `process!'' /usr/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/fcgi_handler.rb:23:in `process!'' /www/http/internos/lisa/dispatch.fcgi:24 Austin Ziegler ha scritto:> On 9/26/06, minni <minni-JtdkSZGDUbj2wzVTtHsWjw@public.gmane.org> wrote: >> Hello, i''m newbie for pdf::writer and also for >> rails. >> I''ve put PDF::Writer on rails to use rpdf views. >> All ok in development mode (with webrick), ok in >> ./script/console test, in development and also in >> production environment. >> When I switch to production environment in apache >> (fcgi mode) FPFD generate well graphics, but become >> an arror when I wrote text (perhaps for font trouble >> troble?) >> ActionView::TemplateError (undefined method `[]'' for nil:NilClass) on >> line #15 >> 15: pdf.add_text_wrap left_base, top-30, width, "Aula " >> >> I try copy environmente/development.rb to >> environmente/production.rb but all the same. >> There is some troble in fcgi mode? > > I''m not sure what would be causing this. Is it possible to get a more > detailed stack trace? > > -austin--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
Austin Ziegler
2006-Sep-26 16:46 UTC
Re: PDF::Writer Switching to Production Trouble (on rails)
On 9/26/06, minni <minni-JtdkSZGDUbj2wzVTtHsWjw@public.gmane.org> wrote:> > here the full stack trace. > If I remove all pdf.add_text_wrap commands, and I leave only draw > command (like > pdf.fill_color(Color::RGB.from_html(''#E6E6E6;'')) > pdf.rectangle(left, cur_y-4, 610, 15).fill > pdf.line(left+70, cur_y-4 ,left+70, cur_y+11).stroke > no error happenzWhat character set are you using? It appears that you have some characters that don''t have default widths defined and you need to put them in a substitution map (see the manual for details on how the manual added the copyright symbol, for example). -austin -- Austin Ziegler * halostatue-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org * http://www.halostatue.ca/ * austin-/yODNl0JVVCozMbzO90S/Q@public.gmane.org * http://www.halostatue.ca/feed/ * austin-BGvFLPKiNqwsA/PxXw9srA@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
Tomaso Minelli
2006-Sep-26 20:23 UTC
Re: PDF::Writer Switching to Production Trouble (on rails)
I''m using "Times-Roman", and if I wrote on ./script/console require ''pdf/simpletable'' pdf=PDF::Writer.new pdf.select_font "Times-Roman" pdf.add_text_wrap 100, 100, 400, "Aula", 15 pdf.render no error happen... only in production mode, on apache fcgi... Is possible a misconfiguration on www-user? PDF::Writer use some ENV variable? root and ww-user have same shell (bash) on /etc/passwd something else? Really, I''ve no idea... Trouble only on apache/fcgi... Argh! Thank you for your kind help Tomaso Austin Ziegler ha scritto:> On 9/26/06, minni <minni-JtdkSZGDUbj2wzVTtHsWjw@public.gmane.org> wrote: >> here the full stack trace. >> If I remove all pdf.add_text_wrap commands, and I leave only draw >> command (like >> pdf.fill_color(Color::RGB.from_html(''#E6E6E6;'')) >> pdf.rectangle(left, cur_y-4, 610, 15).fill >> pdf.line(left+70, cur_y-4 ,left+70, cur_y+11).stroke >> no error happenz > > What character set are you using? It appears that you have some > characters that don''t have default widths defined and you need to put > them in a substitution map (see the manual for details on how the > manual added the copyright symbol, for example). > > -austin--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
Austin Ziegler
2006-Sep-27 00:09 UTC
Re: PDF::Writer Switching to Production Trouble (on rails)
On 9/26/06, Tomaso Minelli <minni-JtdkSZGDUbj2wzVTtHsWjw@public.gmane.org> wrote:> I''m using "Times-Roman", and if I wrote on > ./script/console > require ''pdf/simpletable'' > pdf=PDF::Writer.new > pdf.select_font "Times-Roman" > pdf.add_text_wrap 100, 100, 400, "Aula", 15 > pdf.renderDoes this specific problem test case fail in production? If it does, it sounds like a Rails problem and I don''t know what to say about it -- PDF::Writer does not use ENV variables. -austin -- Austin Ziegler * halostatue-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org * http://www.halostatue.ca/ * austin-/yODNl0JVVCozMbzO90S/Q@public.gmane.org * http://www.halostatue.ca/feed/ * austin-BGvFLPKiNqwsA/PxXw9srA@public.gmane.org --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
No, if I run ./script/console production no erro happen... Thank you anyware. Tomaso Austin Ziegler ha scritto:> On 9/26/06, Tomaso Minelli <minni-JtdkSZGDUbj2wzVTtHsWjw@public.gmane.org> wrote: >> I''m using "Times-Roman", and if I wrote on >> ./script/console >> require ''pdf/simpletable'' >> pdf=PDF::Writer.new >> pdf.select_font "Times-Roman" >> pdf.add_text_wrap 100, 100, 400, "Aula", 15 >> pdf.render > > Does this specific problem test case fail in production? If it does, > it sounds like a Rails problem and I don''t know what to say about it > -- PDF::Writer does not use ENV variables. > > -austin--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
No way! I''ve decided to run application in development mode under apache/fcgi, but using production environment, i.e. whith cahing class: config.cache_classes = true config.action_controller.consider_all_requests_local = false config.action_controller.perform_caching = true If I call development mode with other name (for example new_state), and I correct database.yml and environments/new_state.rb the error become like production mode.... Than I set DefaultInitEnv RAILS_ENV development and no preoblem found. If someone know differences between devlopment status and other status (production or elseware) tell me where I can read about it (nothing in agile web and rail recipes) Thank you Austin, right way is the problem in Rails... Tomaso minni ha scritto:> > No, if I run > ./script/console production > no erro happen... > Thank you anyware. > > Tomaso > > Austin Ziegler ha scritto: >> On 9/26/06, Tomaso Minelli <minni-JtdkSZGDUbj2wzVTtHsWjw@public.gmane.org> wrote: >>> I''m using "Times-Roman", and if I wrote on >>> ./script/console >>> require ''pdf/simpletable'' >>> pdf=PDF::Writer.new >>> pdf.select_font "Times-Roman" >>> pdf.add_text_wrap 100, 100, 400, "Aula", 15 >>> pdf.render >> Does this specific problem test case fail in production? If it does, >> it sounds like a Rails problem and I don''t know what to say about it >> -- PDF::Writer does not use ENV variables. >> >> -austin > > >--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---
PDF::Writer do not work properly in fcgi mode, in linux. The trouble is in PDF::Writer::FontMetrics class that try to read afm in binary mode and do some operations that is prohibited in fcgi. The solution is the creation of rfm file who is only unmarshaled. This workaround has beautiful side effect to increase the performance of pdf generation. Here the snipplet (whith Times-Roman): cd <your application> ./script/console development >> require ''pdf/writer'' >> p=PDF::Writer::FontMetrics.open("Times-Roman") >> p.save_as_rfm >> exit mv Times-Roman.afm.rfm \ /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3\ /lib/pdf/writer/fonts/ To made this for all the fonts, simply execute in console: Dir.foreach(''/usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3/lib/pdf/writer/fonts/'') {|d|; if d=~/.afm$/; p=PDF::Writer::FontMetrics.open(d); p.save_as_rfm; end } and copy all to destination mv *.rfm /usr/lib/ruby/gems/1.8/gems/pdf-writer-1.1.3\ /lib/pdf/writer/fonts/ Hope this is useful... Minni Solution to tread PDF::Writer Switching to Production Trouble (on rails) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk -~----------~----~----~----~------~----~------~--~---