{"id":29337,"date":"2021-06-12T20:00:00","date_gmt":"2021-06-12T17:00:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=29337"},"modified":"2021-10-18T03:33:01","modified_gmt":"2021-10-18T00:33:01","slug":"jak-przekonwertowac-html-na-pdf-w-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pl\/jak-przekonwertowac-html-na-pdf-w-php\/","title":{"rendered":"Jak przekonwertowa\u0107 HTML na PDF w PHP"},"content":{"rendered":"<p>PDF (Portable Document Format) to format pliku, kt\u00f3ry obejmuje formatowanie tekstu i obrazy w sta\u0142ym uk\u0142adzie. Plik PDF jest niezale\u017cny od oprogramowania, sprz\u0119tu i systemu operacyjnego. Oznacza to, \u017ce mo\u017cesz u\u017cywa\u0107 tego samego pliku PDF w dowolnym systemie operacyjnym.<\/p>\n<p>Pracuj\u0105c nad aplikacjami PHP, czasami chcemy stworzy\u0107 PDF z HTML. Mo\u017ce to by\u0107 faktura, instrukcja instalacji, \u017cyciorys itp. Aby by\u0142a dynamiczna, musimy w locie generowa\u0107 PDF za pomoc\u0105 HTML.<\/p>\n<p>W tym artykule poka\u017c\u0119, jak przekonwertowa\u0107 HTML na PDF w PHP za pomoc\u0105 biblioteki Dompdf.<\/p>\n<p><a href=\"https:\/\/github.com\/dompdf\/dompdf\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dompdf<\/a> to biblioteka konwertuj\u0105ca HTML na PDF o otwartym kodzie \u017ar\u00f3d\u0142owym. U\u017cywaj\u0105c Dompdf, mo\u017cesz \u0142atwo tworzy\u0107 PDF z surowego HTML lub u\u017cywaj\u0105c pliku HTML.<\/p>\n<h3>Pierwsze kroki<\/h3>\n<p>Aby rozpocz\u0105\u0107, musisz najpierw zainstalowa\u0107 bibliotek\u0119 Dompdf w swojej aplikacji. Do instalacji biblioteki polecam u\u017cywa\u0107 <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composera<\/a>.<\/p>\n<p>Otw\u00f3rz terminal w katalogu g\u0142\u00f3wnym projektu i uruchom polecenie:<\/p>\n<pre><code>composer require dompdf\/dompdf<\/code><\/pre>\n<p>Po zainstalowaniu biblioteki mo\u017cesz do\u0142\u0105czy\u0107 \u015brodowisko Dompdf do swojego projektu, korzystaj\u0105c z poni\u017cszego kodu.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse DompdfDompdf;<\/code><\/pre>\n<h3>Konwertuj HTML na PDF w PHP<\/h3>\n<p>Kod wymagany do wygenerowania PDF jest prosty i bezpo\u015bredni. Jako przyk\u0142ad za\u0142\u00f3\u017cmy, \u017ce masz surowy kod HTML, kt\u00f3ry powinien zosta\u0107 przekonwertowany w formacie PDF. Utw\u00f3rz <code>index.php<\/code>plik i dodaj napisz kod w nast\u0119puj\u0105cy spos\u00f3b.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse DompdfDompdf;\n\u00a0\n\/\/ instantiate and use the dompdf class\n$dompdf = new Dompdf();\n$dompdf-&gt;loadHtml('&lt;h1&gt;hello world&lt;\/h1&gt;');\n\u00a0\u00a0\n\/\/ (Optional) Setup the paper size and orientation\n$dompdf-&gt;setPaper('A4', 'landscape');\n\u00a0\u00a0\n\/\/ Render the HTML as PDF\n$dompdf-&gt;render();\n\u00a0\u00a0\n\/\/ Output the generated PDF to Browser\n$dompdf-&gt;stream();<\/code><\/pre>\n<p>Tutaj przekazujemy surowy kod HTML do metody <code>loadHtml()<\/code>. Po uruchomieniu tego pliku wygeneruje on PDF i wyrenderuje w przegl\u0105darce.<\/p>\n<p>Mo\u017cemy r\u00f3wnie\u017c nada\u0107 nazw\u0119 plikowi PDF, kt\u00f3ry ma zosta\u0107 pobrany.<\/p>\n<pre><code>$dompdf-&gt;stream('test.pdf');<\/code><\/pre>\n<p>Dowiedzia\u0142e\u015b si\u0119 o generowaniu PDF z surowego HTML. Zobaczmy teraz, jak utworzy\u0107 plik PDF za pomoc\u0105 pliku HTML.<\/p>\n<p>S\u0105 na to 2 sposoby. W pierwszy spos\u00f3b pobieramy tre\u015b\u0107 z pliku HTML i przekazujemy j\u0105 do <code>loadHtml()<\/code>metody. Innym sposobem jest u\u017cycie <code>loadHtmlFile()<\/code>funkcji i przekazanie jej \u015bcie\u017cki do pliku HTML.<\/p>\n<p>Zobaczmy oba sposoby jeden po drugim.<\/p>\n<p><strong>Pierwsza metoda<\/strong><\/p>\n<pre><code>$html = file_get_contents('test.html');\n$dompdf-&gt;loadHtml($html);\n\u00a0\n\/\/ Render the HTML as PDF\n$dompdf-&gt;render();\n\u00a0\n\/\/ Output the generated PDF to Browser\n$dompdf-&gt;stream();<\/code><\/pre>\n<p><strong>Druga metoda<\/strong><\/p>\n<p>W tej metodzie powiniene\u015b najpierw ustawi\u0107 'chroot&#8217; katalogu, w kt\u00f3rym znajduje si\u0119 tw\u00f3j plik HTML. Je\u015bli tw\u00f3j plik HTML znajduje si\u0119 w katalogu g\u0142\u00f3wnym, u\u017cyj bezpo\u015brednio tej <code>getcwd()<\/code>metody. Powiniene\u015b dostosowa\u0107 \u015bcie\u017ck\u0119 zgodnie ze swoimi wymaganiami.<\/p>\n<pre><code>$dompdf-&gt;set_option('chroot', getcwd()); \/\/assuming HTML file is in the root folder\n$dompdf-&gt;loadHtmlFile('test.html');\n\u00a0\n\/\/ Render the HTML as PDF\n$dompdf-&gt;render();\n\u00a0\n\/\/ Output the generated PDF to Browser\n$dompdf-&gt;stream();<\/code><\/pre>\n<h3>Zapisz wygenerowany plik PDF<\/h3>\n<p>Wszystkie powy\u017csze kody, kt\u00f3re napisali\u015bmy, wyrenderuj\u0105 wygenerowany plik PDF w przegl\u0105darce. Je\u015bli kto\u015b chce zapisa\u0107 wygenerowany plik PDF na dysku, u\u017cyj kodu w nast\u0119puj\u0105cy spos\u00f3b:<\/p>\n<pre><code>$dompdf-&gt;set_option('chroot', getcwd()); \/\/assuming HTML file is in the root folder\n$dompdf-&gt;loadHtmlFile('test.html');\n\u00a0\n\/\/ Render the HTML as PDF\n$dompdf-&gt;render();\n\u00a0\n\/\/Save to disk\n$output = $dompdf-&gt;output();\nfile_put_contents(\"test.pdf\", $output);<\/code><\/pre>\n<p>Wszystko sprowadza si\u0119 do konwersji HTML na PDF przy u\u017cyciu biblioteki Dompdf. Chcia\u0142bym us\u0142ysze\u0107 wasze przemy\u015blenia i sugestie w sekcji komentarzy poni\u017cej.<\/p>\n<h4>Powi\u0105zane artyku\u0142y<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/korzystanie-z-google-recaptcha-w-formularzach-witryny-z-php\/\" title=\"Korzystanie z Google reCAPTCHA w formularzach witryny z PHP\">Korzystanie z Google reCAPTCHA w formularzach witryny z PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przeslij-pliki-do-amazon-s3-za-pomoca-aws-php-sdk\/\" title=\"Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK\">Prze\u015blij pliki do Amazon S3 za pomoc\u0105 AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pl\/przeslij-obraz-za-pomoca-bulletproof-library-w-php\/\" title=\"Prze\u015blij obraz za pomoc\u0105 kuloodpornej biblioteki w PHP\">Prze\u015blij obraz za pomoc\u0105 kuloodpornej biblioteki w PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\u0179r\u00f3d\u0142o nagrywania:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Szukasz skryptu PHP do konwersji HTML na PDF? W tym artykule dowiemy si\u0119, jak wygenerowa\u0107 PDF z HTML za pomoc\u0105 Dompdf. Mo\u017cemy nawet<\/p>\n","protected":false},"author":1,"featured_media":21628,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[277],"tags":[847],"class_list":["post-29337","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-8","tag-affiai-pl"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29337","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/comments?post=29337"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/posts\/29337\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media\/21628"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/media?parent=29337"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/categories?post=29337"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pl\/wp-json\/wp\/v2\/tags?post=29337"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}