Hur man konverterar HTML till PDF i PHP
PDF (Portable Document Format) är ett filformat som inkluderar textformatering och bilder i en fast layout. PDF-filen är oberoende av applikationsprogramvara, hårdvara och operativsystem. Det betyder att du kan använda samma PDF i vilket operativsystem som helst.
När vi arbetar med PHP-applikationer vill vi ibland skapa PDF av HTML. Det kan vara en faktura, installationsguide, CV, etc. För att göra det dynamiskt måste vi generera PDF med HTML i farten.
I den här artikeln visar jag hur du konverterar HTML till PDF i PHP med hjälp av Dompdf-biblioteket.
Dompdf är ett open-source HTML till PDF-omvandlarbibliotek. Med hjälp av Dompdf kan du enkelt skapa PDF från rå HTML eller med HTML-fil.
Komma igång
För att komma igång måste du först installera Dompdf-biblioteket i din applikation. Jag rekommenderar att du använder Composer för installation av biblioteket.
Öppna terminalen i din projektkatalog och kör kommandot:
composer require dompdf/dompdf
När du har installerat ett bibliotek kan du inkludera Dompdf-miljön i ditt projekt med koden nedan.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
Konvertera HTML till PDF i PHP
Koden som krävs för att generera PDF är enkel och okomplicerad. Som ett exempel, låt oss säga att du har en rå HTML som ska konverteras i PDF. Skapa en index.php
fil och lägg till skriv koden enligt följande.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>hello world</h1>');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Här skickar vi en rå HTML till metoden loadHtml()
. När vi kör den här filen kommer den att generera PDF och renderas i en webbläsare.
Vi kan också ge ett namn till PDF-filen som ska laddas ner.
$dompdf->stream('test.pdf');
Du lärde dig att skapa PDF från rå HTML. Låt oss nu se hur du skapar PDF med HTML-fil.
Det finns två sätt för det. På det första sättet hämtar vi innehållet från HTML-filen och skickar det till loadHtml()
metoden. Ett annat sätt är att använda loadHtmlFile()
funktionen och skicka HTML-filens sökväg till den.
Låt oss se båda vägarna en efter en.
Första metoden
$html = file_get_contents('test.html');
$dompdf->loadHtml($html);
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Andra metoden
I den här metoden bör du först ställa in ‘chroot’ i katalogen där din HTML-fil finns. Om din HTML-fil finns i rotkatalogen använder du getcwd()
metoden direkt. Du bör justera sökvägen enligt dina krav.
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Spara den genererade PDF-filen
Alla ovanstående koder som vi har skrivit kommer att återge den genererade PDF-filen i en webbläsare. Om någon vill spara genererad PDF till en disk använder du koden enligt följande:
$dompdf->set_option('chroot', getcwd()); //assuming HTML file is in the root folder
$dompdf->loadHtmlFile('test.html');
// Render the HTML as PDF
$dompdf->render();
//Save to disk
$output = $dompdf->output();
file_put_contents("test.pdf", $output);
Det handlar om att konvertera HTML till PDF med hjälp av Dompdf-biblioteket. Jag skulle vilja höra dina tankar och förslag i kommentarsektionen nedan.
relaterade artiklar
- Använda Google reCAPTCHA på din webbplats formulär med PHP
- Ladda upp filer till Amazon S3 med AWS PHP SDK
- Ladda upp bild med hjälp av Bulletproof Library i PHP