Salva HTML come PDF in Python

Manav Narula 9 luglio 2021
  1. Usa l’API wkhtmltopdf con Pdfkit per salvare HTML come PDF usando Python
  2. Usa il modulo weasyprint per salvare HTML come PDF usando Python
  3. Usa il modulo PyQT per salvare HTML come PDF usando Python
Salva HTML come PDF in Python

L’HTML è il linguaggio più basilare e popolare per lo sviluppo web. Ha costituito la base per molte lingue. Python ha il supporto per creare connessioni e lavorare con i siti web.

Un PDF è un documento portatile che può essere visualizzato su diversi dispositivi ed è indipendente dal software utilizzato per crearlo.

In questo tutorial, salveremo una pagina web HTML come PDF usando Python.

Usa l’API wkhtmltopdf con Pdfkit per salvare HTML come PDF usando Python

Il wkhtmltopdf è un insieme di strumenti open source in grado di convertire una pagina Web HTML in un PDF. Usiamo il modulo pdfkit per lavorare con questo in Python. Le funzioni di questo modulo possono funzionare su pagine Web singole o multiple e salvarle come file PDF.

Possiamo leggere il contenuto direttamente dall’URL della pagina web o da un file HTML salvato sul dispositivo. La funzione from_url() legge il contenuto da un URL e la funzione from_file() legge da un file.

Il nome e il percorso del file possono essere specificati all’interno della funzione.

Vedere il seguente codice per vedere il loro utilizzo

import pdfkit

pdfkit.from_url("https://www.delftstack.com/", "sample.pdf")

Possiamo anche memorizzare questo contenuto in una variabile menzionando False nella funzione invece del nome PDF.

Ricorda di installare wkhtmltopdf dal suo sito Web ufficiale prima di utilizzare questo metodo.

Usa il modulo weasyprint per salvare HTML come PDF usando Python

Il modulo weasyprint viene utilizzato per rendere le pagine web in formati di documenti. Usiamo la funzione HTML per leggere l’URL e salvarlo come PDF usando la funzione write_pdf().

Per esempio,

import weasyprint

doc_pdf = weasyprint.HTML("https://www.delftstack.com/").write_pdf("sample.pdf")

Molti altri moduli e funzionalità devono essere installati prima di utilizzare weasyprint, quindi si consiglia di non utilizzarlo.
Inoltre, Python 2 ha rimosso il supporto per questo modulo.

Usa il modulo PyQT per salvare HTML come PDF usando Python

Il modulo PyQT ha una vasta gamma di funzionalità per lo sviluppo della GUI e altre caratteristiche. Possiamo leggere manualmente l’URL di una pagina Web HTML e convertirlo in un PDF utilizzando diverse funzioni.

Vedere il seguente codice.

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
w = QWebView()
w.load(QUrl("https://www.delftstack.com"))
p = Qp()
p.setPageSize(Qp.A4)
p.setOutputFormat(Qp.PdfFormat)
p.setOutputFileName("sample.pdf")


def convertIt():
    w.print_(p)
    QApplication.exit()


QObject.connect(w, SIGNAL("loadFinished(bool)"), convertIt)
sys.exit(app.exec_())
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn