2015-12-28 41 views
9


wkhtmltopdf genera dal formato PDF su Ubuntu senza X Server

E 'possibile impostare il formato di PDF per generare in wkhtmltopdf?
dal mio PC wkhtmltopdf genera formato "PDF-1.4"

enter image description here

Ma remota del server Ubuntu 14.04 che sta generando pdf con un server X 'virtuale' utilizzando xvfb dando formato PDF-0:

enter image description here


L'unico problema è aprire il file PDF generato in Chrome :)
Impossibile aprire Chrome PDF-0.

Grazie

+0

wkhtmltopdf imposta solo correttamente il campo del creatore dalla versione 0.12.1 (specificatamente dal [presente] (https://github.com/wkhtmltopdf/wkhtmltopdf/commit/a762a849a64c2bd4e697d7ac37e7be5e59300bc6) commit). Quindi sospetto che tu debba eseguire una versione precedente sul tuo server remoto. Qualche possibilità che puoi aggiornare? - Tuttavia, credo che la causa principale sia in realtà all'interno di [QPrinter] (http://doc.qt.io/qt-5/qprinter.html), quindi il tuo problema potrebbe derivare anche dalle diverse versioni di QT che stai utilizzando. Puoi pubblicare la prima riga del tuo PDF risultante come mostrato in un editor di testo?Codifica la versione PDF. – morido

+0

Le versioni in esecuzione sul computer locale e sul server sono le stesse. 0.12.2.4 esattamente – DAKZH

+0

Questo ci porta alla conclusione che il vostro problema è verosimilmente probabile radicato all'interno del QT (o anche da qualche parte più avanti lungo la catena). Puoi aggiornare le tue librerie QT sul server e riprovare? – morido

risposta

2

Sembra che il PDF risultante dalla Xvfb potrebbero non essere corretta al 100%. Ci sono alcuni problemi con i meta dati. Ad esempio, manca il creatore. Anche PDF-0 non sembra essere una versione PDF valida. Potrebbero esserci altri problemi con il documento. Questo potrebbe essere un motivo per cui il file generato non viene visualizzato in Chrome.

Un buon modo per esaminare il documento sarebbe utilizzare lo strumento di verifica preliminare di Acrobat. Controllerà il documento per potenziali problemi e ciò potrebbe fornire un indizio su cosa sta succedendo. Lo strumento si trova in "Produzione di stampa" in Acrobat. Il profilo da eseguire si chiama "Segnala problemi di sintassi PDF". Sono sicuro che ci sono altri strumenti là fuori che possono anche spiegare cosa c'è di sbagliato nel documento.

Questa sezione dovrebbe fornire una soluzione al problema. Come menzionato nei commenti seguenti, l'aggiornamento della versione QT da 4.8.6 a qualcosa di più recente dovrebbe risolvere il problema. La configurazione di lavoro sembra essere in esecuzione 5.3.2, mentre quella non funzionante è in QT 4.8.6.

+0

Grazie. Sì, è sicuramente un problema con la generazione di pdf xvfb. Ho infatti esaminato il pdf con Acrobat e le immagini dei risultati sono domande. Puoi aiutare a trovare il motivo per cui xvfb genera pdf errato mentre nel mio computer locale la generazione di PDF è buona. – DAKZH

+0

Posso provarlo. Puoi darmi qualche altro dettaglio sulla tua configurazione o aggiornare il tuo OP con quello? Sul tuo computer locale, stai utilizzando wkhtmltopdf per generare file PDF. Qual è il tuo locale in esecuzione? Quindi su una macchina remota su cui è in esecuzione Ubuntu, si utilizza wkhtmltopdf per generare file PDF. Si usa xvfb per connettersi da remoto ad esso. Questa supposizione è corretta? Hai la possibilità di provare ad accedere localmente al server, solo per eliminare xvfb dall'immagine? Per favore correggimi se le mie supposizioni sulla tua configurazione sono sbagliate. –

+0

Ho usato [questa configurazione] (https://github.com/JazzCore/python-pdfkit/wiki/Using-wkhtmltopdf-without-X-server) per eseguire wkhtmltopdf senza X Server sul server pc. – DAKZH

0

Posso suggerire phantomjs come alternativa (strumento senza testa, nessun server x necessario) a xkhtmltopdf.

HTML per il rendering PDF è molto semplice (ad esempio http://phantomjs.org/screen-capture.html)

0

Bounty risposta:

Apparentemente QT e QT 4 5 comportarsi in modo diverso quando si stampa un file PDF. Quindi, il tuo problema può essere risolto aggiornando le librerie QT sul tuo server.

Si può considerare il deposito di un bug wkhtmltopdf dal momento che il comportamento descritto rende ovviamente incompatibile con QT 4.

Vedi anche commento originale here.