Conversione automatica da HTML a PDF ragionevole (in ambiente UNIX / Linux) [chiuso]


16

C'è un modo per generare automaticamente documenti PDF da file HTML in Linux in cui il PDF offre una sorta di ragionevole livello di somiglianza con il file di input?

Uno strumento da riga di comando - al contrario di una GUI interattiva di qualche tipo - è la chiave.

Ho provato htmldoce alcuni cugini affini, ovviamente. Ma questi strumenti sono irrimediabilmente dell'età della pietra; htmldocnon supporta affatto i CSS. Oggigiorno non troverai molti documenti HTML che non abbiano almeno un certo stile CSS. Non mi interessano davvero gli effetti stupidi o gli abbellimenti minori, ma il problema è che i CSS sono al centro della maggior parte dei layout in questi giorni; non molte persone usano più 6 livelli di tabelle nidificate. Quindi, se lo strumento di conversione non ha alcuna comprensione del CSS, non è solo una questione di "il documento non sembra del tutto corretto"; è probabile che non soddisfi affatto lo standard minimo di usabilità.

Alcune persone mi hanno suggerito di provare a utilizzare il motore di rendering di Gecko per generare immagini che possono essere convertite in PDF, ma non ho idea di come procedere, per non parlare della facilità.

Non ho problemi a credere che ci siano buoni strumenti commerciali che lo fanno, ma sto davvero cercando un pacchetto open source, se possibile, poiché lo sforzo stesso è open source e non paga.

Grazie in anticipo!

Risposte:


7

Hai visto wkhtmltopdf ? Non posso dire quanto bene funzioni personalmente, ma sembra esattamente ciò di cui hai bisogno. L'unico problema potrebbe essere, con questa e tutte le soluzioni di "automazione del browser", che raccoglierà il foglio di stile di stampa anziché quello di visualizzazione dello schermo, quindi il PDF potrebbe non essere esattamente quello che vedi sullo schermo.


Che cos'è un foglio di stile di stampa? Devo essere in contatto con le ultime e più grandi novità dall'universo CSS.
Alex Balashov,

Non è una novità, è diventato pratico solo per la maggior parte dei siti Web una volta passati ai CSS per il layout anziché per le tabelle. Prova alistapart.com/articles/goingtoprint o webcredible.co.uk/user-friendly-resources/css/… per un'introduzione.
robertc,

2

Prova chm2pdf con python-beautifulsoup.


2

XHTML2PDF è un set di strumenti Python che include sia script della riga di comando sia una libreria Python (se si desidera incorporarlo in qualcosa di più grande senza sborsare lo script). Supporta HTML / XHTML e CSS, con ulteriori stili CSS specifici del fornitore per modificare l'output formattato (ad es. numeri di pagina, flusso di paragrafi, ecc.)

L'ho usato solo un po 'per elaborare in batch alcuni documenti HTML, ma ha funzionato bene e il suo set di funzionalità mi sembra completo. Il manuale è nascosto nella pagina demo, ma è, di per sé, un buon esempio della conversione da un documento HTML a un PDF.

Avevo un bel set di link agli esempi "prima" e "dopo", ma ho appena creato il mio account e, apparentemente, solo gli spammer hanno inserito più di un link nel loro primo post :-p


1

Volevo generare alcune pagine PNG da pagine HTML dalla riga di comando. Da qualche parte ho trovato questo script ruby che usa mozembed per generare uno screenshot. È possibile rimuovere la linea di scala se non si desidera ridimensionarla.

L'unico problema che vedo è che la pagina appare sullo schermo per un momento ...


Hm, si. L'ultima parte sembra essere un po 'un assassino. Questo deve essere inserito in un back-end puramente lato server; nessuna testina di visualizzazione o altro. Qualche modo per farlo?
Alex Balashov,

0

prova dompdf funziona benissimo da de command-line e con i suoi esempi funziona con qualsiasi tipo di HTML


0

PrinceXML. Può gestire bene CSS. Disponibili versioni Linux, Windows, Mac OS X. AFAICS, questa è anche la tecnologia alla base dell'output PDF di Google Documenti. Ma nota: questo è payware.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.