Rails commande PDFKit échoué
-
10-10-2019 - |
Question
Je suis en train d'utiliser PDFKit comme middleware dans des rails 3 app.
Je peux utiliser wkhtmltopdf de la ligne de commande très bien, mais mon application continue à me lancer cette erreur
command failed: "/Users/bobby/.rvm/gems/ruby-1.9.2-p0/bin/wkhtmltopdf" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-right" "0.75in" "--margin-bottom" "0.75in" "--margin-left" "0.75in" "--encoding" "UTF-8" "--print-media-type" "--quiet" "-" "-"
Si je cours ce dans le terminal, il attend mon entrée, je tape du code HTML, puis appuyez sur Ctrl-d et il crache ce qui semble être un peu PDF ... mais pas de chance dans des rails.
Voici ce que j'ai:
application.rb
require File.expand_path('../boot', __FILE__)
require 'rails/all'
require 'pdfkit'
Bundler.require(:default, Rails.env) if defined?(Bundler)
module Mpr
class Application < Rails::Application
YEARS_ARRAY = (2006..2012).map {|y| [y,y]}.unshift(["Year",nil])
MONTHS_ARRAY = (1..12).map{|m| [ Date::MONTHNAMES[m], m]}.unshift(["All months",nil])
config.middleware.use "PDFKit::Middleware", :print_media_type => true
PDFKit.configure do |config|
config.wkhtmltopdf = '/Users/bobby/.rvm/gems/ruby-1.9.2-p0/bin/wkhtmltopdf'
end
end
end
dans mon contrôleur (première ligne)
respond_to :html, :pdf
Je pense que je suis passé par toutes les discussions sur SO, Github et Google, mais pas de chance.
Quelqu'un peut-il aider ou d'un point moi dans la bonne direction?
merci, P.
La solution
Quelqu'un a résolu le problème et gentiment affiché leur solution .
Autres conseils
Exécuter et copier le chemin
qui wkhtmltopdf
Créer config/initializers/pdfkit.rb
:
PDFKit.configure do |config|
config.wkhtmltopdf = '/path/to/wkhtmltopdf'
end
Le wkhtmltopdf
qui se présente comme un petit bijou est assez vieux. Désinstaller ce petit bijou et essayez de les wkhtmltopdf fichier binaire . Téléchargez, décompressez et le déplacer vers /usr/local/bin/
. Il devrait aider.
Pourquoi l'erreur commence par
/Users/bobby/...encore le début de votre config avec
/Users/pierrelapree/...
Edit:
Une autre différence entre votre code et l'exemple dans le README: https://github.com/pdfkit/PDFKit est qu'ils montrent config.middleware.use
prendre un argument de classe ou d'un module, pas une chaîne.
Essayez de changer cette
config.middleware.use "PDFKit::Middleware", :print_media_type => true
à cette
config.middleware.use PDFKit::Middleware, :print_media_type => true