2011-01-13 8 views
10

Sto tentando di utilizzare PDFKit come middleware in un'applicazione rails 3.Rails Comando PDFKit non riuscito

posso usare wkhtmltopdf dalla riga di comando più che bene, ma la mia app mi tiene gettando questo errore

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" "-" "-" 

se corro questo terminale, attende il mio ingresso, in modo da digitare codice HTML, quindi premi Ctrl-d e sputa quello che sembra essere un po 'PDF ... ma senza fortuna in rotaie.

Ecco quello che ho:

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 

nel mio controller (prima linea)

respond_to :html, :pdf 

penso che ho passato tutte le discussioni su SO, Github e Google , ma senza fortuna.

Qualcuno può aiutarmi o indicarmi la giusta direzione?

grazie, P.

risposta

1

Perché Non inizia l'errore con

/Users/bobby/...
ancora la tua configurazione inizia con
/Users/pierrelapree/...

Edit:

Un'altra differenza tra il codice e l'esempio nel README: https://github.com/pdfkit/PDFKit è che mostrano config.middleware.use prendendo un argomento di classe o modulo, non una stringa.

Prova a cambiare questa

config.middleware.use "PDFKit::Middleware", :print_media_type => true

a questo

config.middleware.use PDFKit::Middleware, :print_media_type => true
+0

Il mio male, ho controllato e sono gli stessi. Ho corretto la domanda – Pierre

+0

Ancora sembra diversa nella domanda? Ad ogni modo, un altro suggerimento sopra. – jemminger

1

Il wkhtmltopdf che si presenta come un gioiello è abbastanza vecchio. Disinstallare questo gioi e provare al seguente wkhtmltopdf binary file. Scarica, decomprimi e spostalo su /usr/local/bin/. Dovrebbe aiutare

6

Esegui e copiare il percorso

che wkhtmltopdf

Creare :

PDFKit.configure do |config| 
    config.wkhtmltopdf = '/path/to/wkhtmltopdf' 
end 
+1

Questa risposta ha risolto un enorme mal di testa per me due volte. –