{"id":28526,"date":"2021-06-12T20:05:00","date_gmt":"2021-06-12T17:05:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28526"},"modified":"2021-10-18T04:00:23","modified_gmt":"2021-10-18T01:00:23","slug":"como-converter-html-para-pdf-em-php","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/pt-pt\/como-converter-html-para-pdf-em-php\/","title":{"rendered":"Como converter HTML para PDF em PHP"},"content":{"rendered":"<p>PDF (Portable Document Format) \u00e9 um formato de arquivo que inclui formata\u00e7\u00e3o de texto e imagens em um layout fixo. O PDF \u00e9 independente do software aplicativo, hardware e sistema operacional. Isso significa que voc\u00ea pode usar o mesmo PDF em qualquer sistema operacional.<\/p>\n<p>Enquanto trabalhamos em aplicativos PHP, \u00e0s vezes queremos criar PDF a partir de HTML. Pode ser uma fatura, guia de instala\u00e7\u00e3o, curr\u00edculo, etc. Para torn\u00e1-lo din\u00e2mico, precisamos gerar PDF em HTML em tempo real.<\/p>\n<p>Neste artigo, mostro como converter HTML em PDF em PHP usando a biblioteca Dompdf.<\/p>\n<p><a href=\"https:\/\/github.com\/dompdf\/dompdf\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Dompdf<\/a> \u00e9 uma biblioteca de convers\u00e3o de HTML para PDF de c\u00f3digo aberto. Usando Dompdf, voc\u00ea pode criar facilmente PDF a partir de HTML bruto ou usando um arquivo HTML.<\/p>\n<h3>Come\u00e7ando<\/h3>\n<p>Para come\u00e7ar, primeiro voc\u00ea precisa instalar a biblioteca Dompdf em seu aplicativo. Eu recomendo usar o <a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Composer<\/a> para a instala\u00e7\u00e3o da biblioteca.<\/p>\n<p>Abra o terminal no diret\u00f3rio raiz do seu projeto e execute o comando:<\/p>\n<pre><code>composer require dompdf\/dompdf<\/code><\/pre>\n<p>Depois de instalar uma biblioteca, voc\u00ea pode incluir o ambiente Dompdf em seu projeto usando o c\u00f3digo abaixo.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse DompdfDompdf;<\/code><\/pre>\n<h3>Converter HTML para PDF em PHP<\/h3>\n<p>O c\u00f3digo necess\u00e1rio para gerar PDF \u00e9 simples e direto. Como exemplo, digamos que voc\u00ea tenha um HTML bruto que deve ser convertido em PDF. Crie um <code>index.php<\/code>arquivo e adicione o c\u00f3digo a seguir.<\/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>Aqui, estamos passando um HTML bruto para o m\u00e9todo <code>loadHtml()<\/code>. Quando executamos este arquivo, ele ir\u00e1 gerar PDF e renderizar em um navegador.<\/p>\n<p>Tamb\u00e9m podemos dar um nome ao PDF que ser\u00e1 baixado.<\/p>\n<pre><code>$dompdf-&gt;stream('test.pdf');<\/code><\/pre>\n<p>Voc\u00ea aprendeu como gerar PDF a partir de HTML bruto. Agora, vamos ver como criar PDF usando arquivo HTML.<\/p>\n<p>Existem 2 maneiras de fazer isso. Na primeira forma, obtemos o conte\u00fado do arquivo HTML e o passamos para o <code>loadHtml()<\/code>m\u00e9todo. Outra forma \u00e9 usar a <code>loadHtmlFile()<\/code>fun\u00e7\u00e3o e passar o caminho do arquivo HTML para ela.<\/p>\n<p>Vamos ver os dois lados, um por um.<\/p>\n<p><strong>Primeiro M\u00e9todo<\/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>Segundo m\u00e9todo<\/strong><\/p>\n<p>Neste m\u00e9todo, voc\u00ea deve primeiro definir o &#8216;chroot&#8217; do diret\u00f3rio onde seu arquivo HTML est\u00e1 localizado. Se o seu arquivo HTML estiver no diret\u00f3rio raiz, use o <code>getcwd()<\/code>m\u00e9todo diretamente. Voc\u00ea deve ajustar o caminho de acordo com sua necessidade.<\/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>Salve o arquivo PDF gerado<\/h3>\n<p>Todos os c\u00f3digos acima que escrevemos renderizar\u00e3o o PDF gerado em um navegador. Se algu\u00e9m quiser salvar o PDF gerado em um disco, use o c\u00f3digo da seguinte maneira:<\/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>\u00c9 tudo sobre a convers\u00e3o de HTML em PDF usando a biblioteca Dompdf. Eu gostaria de ouvir seus pensamentos e sugest\u00f5es na se\u00e7\u00e3o de coment\u00e1rios abaixo.<\/p>\n<h4>Artigos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/usando-o-google-recaptcha-em-formularios-de-seu-site-com-php\/\" title=\"Usando o Google reCAPTCHA em formul\u00e1rios de seu site com PHP\">Usando o Google reCAPTCHA em formul\u00e1rios de seu site com PHP<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/carregar-arquivos-para-o-amazon-s3-usando-aws-php-sdk\/\" title=\"Carregar arquivos para Amazon S3 usando AWS PHP SDK\">Carregar arquivos para Amazon S3 usando AWS PHP SDK<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/pt-pt\/carregar-imagem-usando-a-biblioteca-a-prova-de-balas-em-php\/\" title=\"Carregar imagem usando a biblioteca \u00e0 prova de balas em PHP\">Carregar imagem usando a biblioteca \u00e0 prova de balas em PHP<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea est\u00e1 procurando um script PHP para converter HTML em PDF? Neste artigo, estudamos como gerar PDF a partir de HTML usando Dompdf. Podemos at\u00e9<\/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":[278],"tags":[848],"class_list":["post-28526","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php-9","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/comments?post=28526"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/posts\/28526\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media\/21628"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/media?parent=28526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/categories?post=28526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/pt-pt\/wp-json\/wp\/v2\/tags?post=28526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}