2013-03-14 5 views
13

Sto cercando un buono, open source, generatore/libreria PDF che convertirà html (con stile ecc.) In un file PDF.Convertitore PDF di Google App Engine

Requisito:

  • Deve essere Java o Python ed eseguire su Google App Engine.
  • Deve essere libero, open source.
  • Deve essere facile da usare/consumare.

Sì, ho provato a cercarlo da solo - ho provato molte "soluzioni" che ho trovato su Google, ecc. Nessuno ancora mi soddisfa. Molti sembrano incompleti, buggy o non funzionano bene su GAE. Così ho pensato di fare appello alla community di StackOverflow per opinioni o suggerimenti.

+6

Hai guardato a Pisa https://pypi.python.org/pypi/pisa. In realtà, gli strumenti/librerie che hai esaminato ti aiuteranno. –

+4

Menzione cosa hai provato, altrimenti questa domanda potrebbe essere chiusa. – Lipis

+0

Ciao hai ricevuto la soluzione per l'implementazione di JAVA. Se sì per favore fammi sapere –

risposta

10

Per HTML/immagine in PDF Uso la libreria Python http://www.xhtml2pdf.com/ che utilizza Pisa, Reportlab, pyPdf e html5lib in esecuzione su GAE. L'ho usato per generare PDF di articoli molto belli con immagini incorporate e, una volta capito come ottenere le dimensioni corrette della pagina, ho trovato che questa è una libreria molto buona.

Sarà necessario biblioteca xhtml2pdf ed è dipendenze: https://github.com/chrisglass/xhtml2pdf

ho buttato insieme qualche esempio di codice Python e metterlo in questo pastebin: http://pastebin.com/FFEZjNs3

Il pdf_data si ottiene alla fine è il binario Dati file PDF. Il dato html che date a pisa è in realtà qualsiasi stringa contenente un documento HTML.

Ci sono alcune cose da includere nel codice HTML per ottenere un output PDF ben formattato. Ecco un esempio di documento HTML simile al modello di base che utilizzo. Si noti la meta campo autore e il CSS @page: http://pastebin.com/q1wRm9nJ

Ecco i documenti sul CSS e HTML compatibile: https://github.com/chrisglass/xhtml2pdf/blob/master/doc/usage.rst#supported-css-properties

Si possono includere immagini utilizzando l'URL dell'immagine esterna oppure è possibile utilizzare un dataUri e xhtml2pdf ha una funzione per creare questi "pisa.makeDataURI()".

Speriamo che questo aiuti.

+0

Ottima risposta, questo era proprio quello di cui avevo bisogno! – Fortes