Home>Guide>Come convertire un file HTML in PDF

Come convertire un file HTML in PDF




Ti è mai capitato di dover creare un file PDF in modo dinamico e automatico, ad esempio per creare una fattura, un catalogo, una conferma d’ordine, un report?
Sicuramente avrai pensato “Sarebbe fantastico poterlo fare in modo semplice partendo da una pagina HTML…”.
Non sei il solo! L’esigenza di generare un file PDF in modo automatico è una delle esigenze più diffuse del web. In questa guida scopriremo quanto sia semplice generare un file PDF da HTML usando una potente libreria PHP chiamata Dompdf

  • Leggi l'articolo, ti bastano solo 5 minuti, 6 secondi
    Sei di fretta? Scarica il PDF e consultalo quando vuoi!

Come installare Dompdf

Partiamo dalla base: l’installazione della libreria Dompdf, necessaria a raggiungere il nostro scopo.
Il modo più semplice per farlo è usare Composer. Assicurati quindi di avere a disposizione Composer nel tuo progetto e nella cartella del progetto lancia tramite terminale il comando:

composer require dompdf/dompdf

Ed il gioco è fatto!
Se non conosci Composer, ti suggerisco di approfondire l’argomento, mi rigrazierai!

Se non hai Composer, o non sai come utilizzarlo, puoi comunque scaricare il pacchetto da GitHub e includere manualmente i file.



Il tuo primo PDF: un esempio concreto

Ma partiamo subito dalla pratica per comprendere la semplicità di Dompdf.
Iniziamo col creare un markup HTML, che sarà la base per il nostro primo file PDF generato:

<img src="https://code4life.it/wp-content/uploads/2025/04/logo.png" alt="Logo Code4Life.it">
<h1>Ciao!</h1>
<p>Questo è un PDF generato da HTML con Dompdf utilizzando la guida di Code4Life.it!</p>
<br />
<a href="https://code4life.it/" target="_blank" style="color: #000;">Visita Code4Life.it</a>

Abbiamo inserito anche una immagine, per un esempio più completo.

A questo punto creaimo un piccolo script PHP in cui istanziamo un oggetto Dompdf:

require 'vendor/autoload.php'; // Autoloader Composer
use Dompdf\Dompdf; // Includo la libreria DOMPDF
$dompdf = new Dompdf(); // Istanzio l'oggetto
$html = '
	<img src="https://code4life.it/wp-content/uploads/2025/04/logo.png" alt="Logo Code4Life.it">
	<h1>Ciao!</h1>
	<p>Questo è un PDF generato da HTML con Dompdf utilizzando la guida di Code4Life.it!</p>
	<br />
	<a href="https://code4life.it/" target="_blank" style="color: #000;">Visita Code4Life.it</a>
';
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream("documento.pdf", ["Attachment" => false]);

Davvero semplice no? In questo modo abbiamo convertito il nostro frammento HTML in un file PDF, che viene mostrato nel browser. E ci sono volute poche righe di codice per farlo!

Come puoi notare, abbiamo detto a Dompdf di creare un PDF in formato A4 orientato in verticale (portrait), ma ovviamente puoi decidere il formato e l’orientamento che preferisci.

Inoltre, con la riga:

$dompdf->stream("documento.pdf", ["Attachment" => false]);

abbiamo in pratica chiesto a Dompdf di visualizzare il file PDF generato a partire da HTML nel browser, grazie al metodo stream(). Volendo, modificando il parametro ["Attachment" => false] in ["Attachment" => true] ne forzeremo anche il download.
Se invere vuoi salvare il file PDF generato da Dompdf sul server, per conservarlo o usarlo successivamente, puoi sostituire la riga di stream con:

file_put_contents("documento.pdf", $dompdf->output());

In più, puoi vedere che per il link abbiamo inserito uno style inline per modificare il colore del link e renderlo nero.
Si, hai capito bene! Se vuoi puoi addirittura inserire CSS inline nel tuo frammento HTML.
Su questo argomento, forse vale la pena spendere qualche parola in più, sei d’accordo?


Personalizzazione dello stile e CSS

Come hai potuto vedere, abbiamo inserito uno stile in linea per dare un tocco personale al link nel file PDF generato con Dompdf, trattandosi di una modifica semplice.
Per stili più elaborati, puoi inserire un tag <style> nel template HTML, ad esempio:

<html>
<head>
    <style>
        a { color: #000; }
    </style>
</head>
<body>
    <img src="https://code4life.it/wp-content/uploads/2025/04/logo.png" alt="Logo Code4Life.it">
    <h1>Ciao!</h1>
    <p>Questo è un PDF generato da HTML con Dompdf utilizzando la guida di Code4Life.it!</p>
    <br />
    <a href="https://code4life.it/" target="_blank">Visita Code4Life.it</a>
</body>
</html>

Abbiamo ottenuto lo stesso risultato dello stile inline, ma con ua scrittura più manutenibile ed estendibile.

È possibile anche creare layout più o meno complessi e più personalizzati, usando dei veri e propri templates con fogli di stile. Ad esempio, puoi inserire lo style CSS in un file, che chiameremo template.css:

a { color: #000; }

e il markup HTML in un altro file, che chiameremo template.html e che conterrà a sua volta lo stylesheet:

<html>
<head>
    <link rel="stylesheet" href="https://tuosito.it/stile.css">
</head>
<body>
    <img src="https://code4life.it/wp-content/uploads/2025/04/logo.png" alt="Logo Code4Life.it">
    <h1>Ciao!</h1>
    <p>Questo è un PDF generato da HTML con Dompdf utilizzando la guida di Code4Life.it!</p>
    <br />
    <a href="https://code4life.it/" target="_blank">Visita Code4Life.it</a>
</body>
</html>

Infine, non resta che modificare lo script che genera il file PDF a partire da HTML per includere il file esterno, anziché dichiarare il markup nello script stesso:

require 'vendor/autoload.php'; // Autoloader Composer
use Dompdf\Dompdf; // Includo la libreria DOMPDF
$dompdf = new Dompdf(); // Istanzio l'oggetto
$html = file_get_contents('template.html'); // Il file HTML contiene il <link> al CSS locale
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$dompdf->stream("documento.pdf", ["Attachment" => false]);

Ecco il risultato finale:

Vedi PDF generato con Dompdf da HTML


Link utili

Ecco infine qualche link utile se desideri approfondire gli argomenti di cui abbiamo parlato:


Conclusioni

Nella maggior parte dei casi più comuni, Dompdf è uno strumento perfetto per generare file PDF dinamici con PHP a partire da un markup HTML, ma considera che per casi più complessi o pixel-perfect ci sono soluzioni più avanzate (ovviamente più complesse).

Creare un PDF da HTML con Dompdf è davvero semplice e alla portata di tutti. Abbiamo visto con un esempio pratico come in pochi minuti sia possibile trasformare un template HTML in un documento scaricabile, stampabile, pronto all’uso.

Hai già in mente un progetto in cui potresti usarlo? Una fattura? Un preventivo automatico?



Ti è piaciuto questo articolo? Regalami un click per ripagarmi dello sforzo



Code4Life ti è stato utile? Sostienici con una donazione!

Dona con PayPal

Hai trovato interessante l’articolo? Allora ti consiglio di leggere:

Sincronizzare files tra cartelle con rsync


Hai la necessità di spostare una grossa mole di files tra cartelle? Scopri come farlo in modo veloce, con il comando rsync.

Come usare il comando screen


Scopri come usare il comando screen per gestire sessioni persistenti nel terminale Linux per non perdere mai il lavoro a metà!

Oppure cerca tra gli articoli correlati


E tu cosa ne pensi? Condividi la tua opinione e discutiamone insieme
La tua email non sarà resa pubblico o utilizzata per inviarti spam, te lo prometto

Iscrivimi alla newsletter per ricevere news ed aggiornamenti
Utilizziamo piattaforme di terze parti per l’invio di newsletter. (Informativa sulla privacy)
Tienimi aggiornato su questo articolo
Ricevi una email di notifica quando qualcuno scriverà un commento a questo articolo. (Informativa sulla privacy)
Ricorda i miei dati per la prossima volta che scriverò un commento
Il tuo nome e la tua email verranno salvati in un cookie in questo browser. (Informativa sulla privacy)