2013-01-01 7 views
1

J'ai un problème pour générer un fichier PDF avec pdf_kit gem. Si je lance ces commandes dans la ma console app (RAILS_ENV = rails de production c):les rails et pdfkit ne peuvent pas générer de pdf à partir du contrôleur

kit = PDFKit.new(html, :page_size => 'Letter') 
file = kit.to_file('./demo.pdf') 

Je peux voir le fichier pdf généré correctement, mais si je tente la même chose sur le contrôleur d'action, de cette façon:

kit = PDFKit.new("ciao") 
kit.to_file('/root/app/bidimal/demo1.pdf') 

Je reçois cette erreur dans production.log

RuntimeError (command failed: "/root/.rbenv/shims/wkhtmltopdf" "--encoding" "UTF-8" "--page-size" "A4" "--margin-top" "0.25in" "--margin-right" "0.25in" "--margin-bottom" "0.25in" "--margin-left" "0.25in" "--quiet" "-" "/root/app/bidimal/demo1.pdf"): 
    app/controllers/winners_controller.rb:69:in `invoice' 

Je l'ai déjà vérifié le chemin de wkhtmltopdf en utilisant:

which wkhtmltopdf 
/root/.rbenv/shims/wkhtmltopdf 

donc je suppose que c'est correct. Par la façon dont j'ai cela dans config/initializers/pdfkit.rb

PDFKit.configure do |config| 
    config.wkhtmltopdf = '/root/.rbenv/shims/wkhtmltopdf' 
    config.default_options[:ignore_load_errors] = true 
    config.default_options = { 
    :encoding=>"UTF-8", 
    :page_size=>"A4", 
    :margin_top=>"0.25in", 
    :margin_right=>"0.25in", 
    :margin_bottom=>"0.25in", 
    :margin_left=>"0.25in", 
    :disable_smart_shrinking=>false 
    } 
end 

Je suis sous nginx + passager, le problème peut être lié en quelque sorte à tous les paramètres de nginx (comme les processus disponibles, etc.)? Merci

+0

J'ai téléchargé la bonne corbeille à partir d'ici http://code.google.com/p/wkhtmltopdf/downloads/list et j'ai modifié pdfkit.rb afin de le désigner. ça marche bien –

+1

Donc, votre problème est résolu? Si oui, pensez à poster une réponse ou à clôturer la question. – PinnyM

Répondre

1

Récemment, j'ai commencé à avoir des problèmes avec la pierre précieuse wkhtmltopdf-binaire ... Je ne sais toujours pas ce qui s'est passé.

Pour résoudre ce problème, je l'ai fait ce qui suit:

  1. J'ai enlevé la gemme wkhtmltopdf binaire de mon Gemfile
  2. J'ai aussi eu ce petit bijou installé dans mon environnement rbenv. Je me suis connecté au serveur et je l'ai supprimé en faisant gem uninstall wkhtmltopdf-binary
  3. J'ai installé l'exécutable wkhtmltopdf directement sur mon système. (Je suis sur ubuntu si la commande a été pour moi sudo apt-get install wkhtmltopdf)
  4. J'ai créé un initialiseur dans mon application rails "config/initializers/pdfkit.rb" avec les éléments suivants

PDFKit.configure do |config| config.wkhtmltopdf = '/usr/local/bin/wkhtmltopdf' end

Et tout a recommencé à fonctionner.

+0

Merci beaucoup !!! –

Questions connexes