Gerar PDF com mPDF através de formulário

Saudações galerinha. Vou ensinar agora como usar a classe mPDF. Para quem não sabe o mPDF é uma classe PHP que gera arquivos PDF a partir de UTF-8 HTML codificado. Baseia-se em FPDF e HTML2FPDF, com uma série de melhorias. Basicamente o tutorial que irei ensinar funciona da seguinte forma, confira na imagem abaixo!pdf_mpdfPrimeiro passo você deve criar uma página chamada index.html com os campos que desejar, mas siga primeiro o exemplo e depois faça o seu!
Este arquivo deve ficar na pasta raiz.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>cienciacomputacao.com.br</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<!-- Defina o name de cada input, isso sera importante para chamar ela no arquivo php -->
<form name="form" method="post" action="php/gerar_pdf.php">
    <div class="row">
        <div class="col-xs-3">
            <label>Nome do Cliente</label>
            <input type="text" class="form-control" name="nameCliente">
        </div>
    </div>
    <div class="row">
        <div class="col-xs-3">
            <label>CPF:</label>
            <input type="text" class="form-control" name="cpfCliente">
        </div>
    </div>
    <div class="row">
        <div class="col-xs-3">
            <label>Email:</label>
            <input type="email" class="form-control" name="emailCliente">
        </div>
    </div>
    </br>
    <button type="submit" class="btn btn-primary">GERAR</button>
</form>
</body>
</html>

No código acima eu usei o seguinte modelo:




Em seguida crie uma pasta chamada “php” e dentro dessa pasta crie um arquivo gerar_php.php.

<?php
$nameCliente      = utf8_encode($_POST['nameCliente']);
$cpfCliente          = utf8_encode($_POST['cpfCliente']);
$emailCliente     = utf8_encode($_POST['emailCliente']);

// PEGA O ARQUIVO MODELO
$pdf = file_get_contents("../modelo.html");

// SUBSTITUI COM OS DADOS FORNECIDOS
$pdf = str_replace("#nameCliente","$nameCliente",$pdf);
$pdf = str_replace("#cpfCliente","$cpfCliente",$pdf);
$pdf = str_replace("#emailCliente","$emailCliente",$pdf);

// SOLICITA A CLASS MPDF
require_once("mpdf/mpdf.php");

// INSTANCIA A CLASS MPDF
$mpdf = new mPDF();

// ESCREVE O PDF
$mpdf->WriteHTML($pdf);

// SAIDA DO PDF NO NAVEGADOR
$mpdf->Output("Relatório - ".$nome.".pdf","D");
// SE QUISER SALVAR É SÓ DIRECIONAR O DIRETORIO
//$arquivo_contrato = $mpdf->Output("../requerimentos/".$nome.".pdf");

Crie novamente uma página chamada modelo.html para servir como modelo de seu PDF e ele deve ficar na raiz.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
    <div class="row">
        <p align="center">
            <img src="http://res.cloudinary.com/ci-ncia-da-computa-o/image/upload/v1429073663/site_jmhisz.png">
        </p>
    </div>
    <div class="jumbotron">
        <p>Nome do seu cliente:#nameCliente</p>
        <p>CPF do seu cliente:#cpfCliente</p>
        <p>Email do seu cliente:#emailCliente</p>
    </div>
</div>
</body>
</html>

E por fim basta baixar o mPDF do site, a versão atual que utilizei foi mPDF v6.0. Extraia dentro da pasta chamada “php”, o nome após extrair vai ficar MPDFF60, renomeei para mpdf. Após clicar em “gerar” deve ter iniciado o download do arquivo automaticamente. Exemplo final deve ser este.

mpdf Gostou da dica? Não esqueça de compartilhar e curtir 🙂 Para saber mais detalhes basta consultar a documentação até mais. 😉 Caso o código der algum problema, pegue ele no GitHub.