Convertendo Html em PDF
- Erick Giorgio
- 31 Dec 2022
Um pequeno exemplo de como converter html para pdf usando PHP. Este exemplo requer PHP >= 5.4
Você precisa escrever seu HTML para Html2Pdf e não converter diretamente uma página já existente.Tags específicas foram implementadas, para adaptar o padrão html a um uso de PDF.
instalação
Você só precisa iniciar o seguinte comando na pasta raiz do seu projeto:
$ composer require spipu/html2pdf
Uso
Apos a instalação Um exemplo HelloWorld
//arquivo HelloWorld.php
<?php
require __DIR__.'/vendor/autoload.php';
use Spipu\Html2Pdf\Html2Pdf;
$html2pdf = new Html2Pdf();
$html2pdf->writeHTML('<h1>HelloWorld</h1>This is my first test');
$html2pdf->output();
Html2Pdf Usa o autoloader PSR-4 .
Parâmetros
Algumas coisas podem ser modificadas por aqui….
<?php
use Spipu\Html2Pdf\Html2Pdf;
$html2pdf = new Html2Pdf(
$orientation = 'P',
$format = 'A4',
$lang = 'fr',
$unicode = true,
$encoding = 'UTF-8',
$margins = array(5, 5, 5, 8),
$pdfa = false
);
colocar tabela…..
Exemplo
<?php
$html2pdf = new Html2Pdf($orientation = 'P', $format = 'A4',$lang = 'pt_BR',$unicode=true,$encoding = 'ISO8859-1', $margins = array(5, 5, 5, 8) );
Página
Este biblioteca preve algumas tags extras para facilitar a construção do PDF.
<?php
require __DIR__.'/vendor/autoload.php';
use Spipu\Html2Pdf\Html2Pdf;
$html = '
<page backtop="7mm" >
<page_header>
<div style="width: 100%;border: 1px solid #000000">Page Header </div>
</page_header>
<page_footer >
<div style="width: 100%;border: 1px solid #CCCCCC">Page Footer</div>
</page_footer>
<div style="width: 100%;height: 97%; border: 1px solid #133f1a">Page Content</div>
</page>
';
$pdf = new \Spipu\Html2Pdf\Html2Pdf('P','A4','en', false, 'UTF-8', array(10, 10, 10, 10));
$pdf->writeHTML($html);
$pdf->Output();
Saída
Renderiza pdf no broweser
$html2pdf->output();
Renderiza pdf no broweser especificando nome.
$html2pdf->output("name.pdf");
Força download
$html2pdf->output('file.pdf', 'D');
Escreve o conteudo do PDF em um arquivo no servidor
$html2pdf->output('/absolute/path/file_xxxx.pdf', 'F');
Retorna o conteudo do PDF (stream content). Uma boa opção para enviar por email.
$pdfContent = $html2pdf->output('file.pdf', 'S');