Domanda

Sto cercando di usare PDFKit come middleware in un rotaie 3 app.

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 alcuni HTML, quindi premere CTRL-D e sputa quello che sembra essere un po 'di PDF ... ma senza fortuna in Rails.

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

a mio controller (prima linea)

respond_to :html, :pdf

Credo Ho passato attraverso tutte le discussioni su SO, Github e Google, ma senza fortuna.

chiunque aiutare Can o mi punto nella giusta direzione?

Grazie, P.

È stato utile?

Soluzione

Qualcuno ha risolto il problema e gentilmente pubblicato la loro soluzione .

Altri suggerimenti

Esegui e copiare il percorso

che wkhtmltopdf

Crea config/initializers/pdfkit.rb:

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

Il wkhtmltopdf che si presenta come un gioiello è abbastanza vecchio. Disinstallare questo gioiello e cercare al seguente wkhtmltopdf file binario . Download, estrarre e spostarlo /usr/local/bin/. Essa dovrebbe contribuire.

Perché si avvia l'errore con

/Users/bobby/... 
ancora i tuoi configurazione inizia con
/Users/pierrelapree/... 

Modifica:

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

Prova a cambiare questo

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

a questo

config.middleware.use PDFKit::Middleware, :print_media_type => true
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top