Jak przekonwertować HTML na PDF w PHP
PDF (Portable Document Format) to format pliku, który obejmuje formatowanie tekstu i obrazy w stałym układzie. Plik PDF jest niezależny od oprogramowania, sprzętu i systemu operacyjnego. Oznacza to, że możesz używać tego samego pliku PDF w dowolnym systemie operacyjnym.
Pracując nad aplikacjami PHP, czasami chcemy stworzyć PDF z HTML. Może to być faktura, instrukcja instalacji, życiorys itp. Aby była dynamiczna, musimy w locie generować PDF za pomocą HTML.
W tym artykule pokażę, jak przekonwertować HTML na PDF w PHP za pomocą biblioteki Dompdf.
Dompdf to biblioteka konwertująca HTML na PDF o otwartym kodzie źródłowym. Używając Dompdf, możesz łatwo tworzyć PDF z surowego HTML lub używając pliku HTML.
Pierwsze kroki
Aby rozpocząć, musisz najpierw zainstalować bibliotekę Dompdf w swojej aplikacji. Do instalacji biblioteki polecam używać Composera.
Otwórz terminal w katalogu głównym projektu i uruchom polecenie:
composer require dompdf/dompdf
Po zainstalowaniu biblioteki możesz dołączyć środowisko Dompdf do swojego projektu, korzystając z poniższego kodu.
<?php
require_once "vendor/autoload.php";
use DompdfDompdf;
Konwertuj HTML na PDF w PHP
Kod wymagany do wygenerowania PDF jest prosty i bezpośredni. Jako przykład załóżmy, że masz surowy kod HTML, który powinien zostać przekonwertowany w formacie PDF. Utwórz index.php
plik i dodaj napisz kod w następujący sposób.
<?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();
Tutaj przekazujemy surowy kod HTML do metody loadHtml()
. Po uruchomieniu tego pliku wygeneruje on PDF i wyrenderuje w przeglądarce.
Możemy również nadać nazwę plikowi PDF, który ma zostać pobrany.
$dompdf->stream('test.pdf');
Dowiedziałeś się o generowaniu PDF z surowego HTML. Zobaczmy teraz, jak utworzyć plik PDF za pomocą pliku HTML.
Są na to 2 sposoby. W pierwszy sposób pobieramy treść z pliku HTML i przekazujemy ją do loadHtml()
metody. Innym sposobem jest użycie loadHtmlFile()
funkcji i przekazanie jej ścieżki do pliku HTML.
Zobaczmy oba sposoby jeden po drugim.
Pierwsza metoda
$html = file_get_contents('test.html');
$dompdf->loadHtml($html);
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Druga metoda
W tej metodzie powinieneś najpierw ustawić ‘chroot’ katalogu, w którym znajduje się twój plik HTML. Jeśli twój plik HTML znajduje się w katalogu głównym, użyj bezpośrednio tej getcwd()
metody. Powinieneś dostosować ścieżkę zgodnie ze swoimi wymaganiami.
$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();
Zapisz wygenerowany plik PDF
Wszystkie powyższe kody, które napisaliśmy, wyrenderują wygenerowany plik PDF w przeglądarce. Jeśli ktoś chce zapisać wygenerowany plik PDF na dysku, użyj kodu w następujący sposób:
$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);
Wszystko sprowadza się do konwersji HTML na PDF przy użyciu biblioteki Dompdf. Chciałbym usłyszeć wasze przemyślenia i sugestie w sekcji komentarzy poniżej.
Powiązane artykuły
- Korzystanie z Google reCAPTCHA w formularzach witryny z PHP
- Prześlij pliki do Amazon S3 za pomocą AWS PHP SDK
- Prześlij obraz za pomocą kuloodpornej biblioteki w PHP