Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

PHP to PDF

15/08/2018

Hoje vamos aprender como exportar dados do banco MySql para o PDF. Para isso, utilizaremos a class MPDF.

Exportando dados do PHP para o PDF

Primeiramente precisamos instalar o composer na raiz do nosso projeto. Caso ainda não saiba utilizar o Composer assista nossa vídeo-aula sobre o tema clicando aqui.

O composer.json do Composer ficará da seguinte forma:

{
    "name": "webdesign/pdf",
    "description": "Exportacao de dados em PDF.",
    "authors": [
        {
            "name": "Webdesign em Foco",
            "email": "webdesignemfoco@gmail.com"
        }
    ],
    "require": {
        "mpdf/mpdf": "^7.1"
    },
    "autoload":{
        "psr-4":{
            "Classes\\":"class/"
        }
    }
}

Não esqueça de dar o comando $ composer update

Posteriormente vamos criar nosso banco de dados. O banco de dados da vídeo-aula foi o "sistema" e a tabela foi a "pessoas".

CREATE TABLE `pessoas` (
  `id` int(11) NOT NULL,
  `nome` varchar(90) NOT NULL,
  `rg` varchar(30) NOT NULL
);
ALTER TABLE `pessoas` ADD PRIMARY KEY (`id`);
ALTER TABLE `pessoas` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1;
INSERT INTO `pessoas` (`id`, `nome`, `rg`) VALUES
(2, 'Thais', '5'),
(1, 'Thiago', '10'),
(3, 'Flavio', '100');

Na sequência criaremos o diretório class e criaremos a ClassConexao.php e ClassPDF.php

ClassConexao.php

<?php
namespace Classes;

abstract class ClassConexao{

    protected function conectaDB()
    {
        try{
            $con=new \PDO("mysql:host=localhost;dbname=sistema","root","");
            return $con;
        }catch (\PDOException $erro){
            return $erro->getMessage();
        }

    }
}

ClassPDF.php

<?php
namespace Classes;

use Classes\ClassConexao;
use \Mpdf\Mpdf;

class ClassPDF extends ClassConexao{

    private $db;
    private $pdf;


    public function __construct()
    {
        $this->pdf=new Mpdf(['orientation' => 'L']);
    }


    #Exporta os dados do usuário no formato PDF
    public function exportaDadosPdf($nome)
    {
        $nomeLike='%'.$nome.'%';
        $this->db=$this->conectaDB()->prepare("select * from pessoas where nome like :nome");
        $this->db->bindParam(":nome",$nomeLike,\PDO::PARAM_STR);
        $this->db->execute();

        $stylesheet = file_get_contents('style.css');

        $this->pdf->WriteHTML($stylesheet,1);
        $this->pdf->SetHTMLHeader("Webdesign em Foco - PDF");

        $this->pdf->WriteHTML("<table>");
    while($fetch=$this->db->fetch(\PDO::FETCH_ASSOC)){
    $this->pdf->WriteHTML("<tr>
        <td><h1>$fetch[nome]</h1></td>
        <td>$fetch[id]</td>
        <td>$fetch[rg]</td>
    </tr>
    ");
    }
    $this->pdf->WriteHTML("</table>");

        $this->pdf->SetProtection(array(), 'root', '123');
        $this->pdf->Output();
    }

}

A nossa estilização foi bem simples (style.css), apenas para teste:

h1{color:pink;}

table{border: 1px solid red;}
    table td{border: 1px solid green;}

A index.php ficará responsável por chamar o método exportaDadosPdf().

<?php
require_once __DIR__ . '/vendor/autoload.php';
use \Classes\ClassPDF;

$pdf=new ClassPDF();
$pdf->exportaDadosPdf('Th');

Até a próxima. Sucesso nos códigos e na vida! ;)

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Armazenar senhas no MySql com PHP
No vídeo de hoje trataremos de gravação de senha com hash no banco de dados. Faremos também a verificação desse hash com a senha digitada pelo usuário.
Saiba mais!
API Fipe - #1
Na vídeo-aula de hoje faremos um sistema de integração entre o nosso site e o banco de dados da FIPE Veículos.
Saiba mais!
PHP
PHP é uma das principais linguagens de programação utilizada nas plataformas web. Isso porque além de ser uma linguagem leve, o PHP é robusto.
Saiba mais!