Convertendo Html em PDF

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');