2012-03-18 6 views
5

Sto provando ad usare PDFKit.Come installare PDFKit? (Rails 3.2.1 e PDFKit 0.5.2)

Sembra abbastanza semplice, quindi sto cercando di seguire Ryan's Rails cast.

Così ho aggiunto la gemma alla mia Gemfile e aggiornato il mio application.rb con:

config.middleware.use "PDFKit::Middleware" 

Dopo che ho installato wkhtmltopdf su Linux con:

apt-get install wkhtmltopdf 

E assicurarsi che funzioni:

[[email protected]]%wkhtmltopdf www.google.com gogole.pdf 
Loading page (1/2) 
Printing pages (2/2)            
Done 

Tutto sembra a posto fino a quando non provo ad aggiungere il .pdf su una delle mie pagine ...

Il sito web rimane per sempre in uno stato di caricamento. Quando mi fermo il server con un Ctrl - C nella console, ottengo il seguente errore:

RuntimeError (command failed: "/usr/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" "-" "-"): 
    pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:71:in `to_pdf' 
    pdfkit (0.5.2) lib/pdfkit/middleware.rb:21:in `call' 

Che cosa sto facendo di sbagliato?

+0

Penso che stiate usando 'Webrick' come server web HTTP. Puoi provare a usare 'Thin'? –

+1

@nash: Grazie per avermi mostrato Thin (di solito uso l'ibrido ma in realtà stavo usando Webrick, vergognandomi: p). Ad ogni modo sta facendo la stessa cosa con Thin :( –

risposta

0

Recentemente ho giocato con PDFKit e l'ho fatto funzionare nella mia applicazione di rails e ho affrontato un problema simile.
I tre passaggi necessari sono:

  1. Avrete bisogno di mettere gioiello "PDFKit" nel vostro Gemfile.
  2. Put config.middleware.use PDFKit :: Middleware nel file application.rb che si possiede già.
  3. Provare a inserire il seguente codice nel file pdfkit.rb nella cartella 'config/initializers'.

    PDFKit.configure do | config |

    config.wkhtmltopdf = 'C: \ software \ utilities \ wkhtmltopdf \ wkhtmltopdf.exe' #e il percorso alla directory di installazione wkhtmltppdf

    config.root_url = "http: // localhost" # Usare solo se il vostro esterno il nome host non è disponibile sul server.

    fine

+0

Grazie, ho provato la tua soluzione ma il mio percorso era già corretto! –

0

Ho seguito anche Ryan's Rails cast.

PDFkit dipende da wkhtmltopdf.rb. Qualsiasi versione> 0.9.9 ha causato il blocco del processo di creazione del PDF prima del completamento, richiedendo un Ctrl-C. Uso OS X 10.6.8, non Linux. Tuttavia prova:

Se è> 0.9.9, quindi eseguire il rollback a 0.9.9. Risolto il mio problema Mi ci sono voluti ore per capire.

0

abbiamo un problema correlato qui: PDF Generation hangs using PDFKit and wkhtmotopdf

Citando la soluzione da Beerlington:

Try removing any javascript include tags from your HTML and see if that at least lets the PDF render. If that works, then you at least have a starting point.

ho provato e che ha lavorato per me.

Penso che abbia a che fare con risorse come javascript e fogli di stile con percorso relativo.