CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

MySQL - Geração de relatórios em PDF

Por Benedito Silva Júnior - publicado em 26/07/2016


Quem desenvolve sistemas para a Web, provavelmente já teve dor de cabeça para gerar relatórios em HTML. Erros são frequentes ou o relatório sai fora da formatação ideal ou é necessário desenvolver um outro software para o cliente imprimir na máquina local. Mas, felizmente, agora existe uma solução.

Graças às novas classes do PHP, você pode gerar seus relatórios direto em PDF e acabar de uma vez por todas com esses problemas de formatação.

Para gerar relatórios com a classe FPDF siga os seguintes procedimentos:

1. Crie um banco de dados e o popule;

2. Crie o código PHP para conectar ao banco de dados:

//Dados do servidor local $servidor = 'localhost'; $usuario = 'root'; $senha = ''; $banco = 'teste'; $tabela = 'nomes';

3. Crie os seguintes códigos para a geração do arquivo .pdf:

//TÍTULO DO RELATÓRIO $titulo = "Funcionários CriandoBits"; //LOGO QUE SERÁ COLOCADO NO RELATÓRIO $imagem = "logo_criandoBits.jpg"; //ENDEREÇO DA BIBLIOTECA FPDF $end_fpdf = "K:/MYSQL/fpdf17"; //NUMERO DE RESULTADOS POR PÁGINA $por_pagina = 10; //ENDEREÇO ONDE SERÁ GERADO O PDF $end_final = "K:/MYSQL/relatorio.pdf"; //TIPO DO PDF GERADO //F-> SALVA NO ENDEREÇO ESPECIFICADO NA VAR END_FINAL $tipo_pdf = "F"; //CONECTA COM O MYSQL $conn = mysql_connect($servidor, $usuario, $senha); $db = mysql_select_db($banco, $conn); $sql = mysql_query("SELECT A.nome, A.idade, A.salario_novo FROM nomes A", $conn); $row = mysql_num_rows($sql); //VERIFICA SE RETORNOU ALGUMA LINHA if(!$row) { echo "Não retornou nenhum registro"; die; } //CALCULA QUANTAS PÁGINAS VÃO SER NECESSÁRIAS $paginas = ceil($row/$por_pagina); //PREPARA PARA GERAR O PDF define("FPDF_FONTPATH", "$end_fpdf/font/"); require_once("$end_fpdf/fpdf.php"); $pdf = new FPDF(); //INICIALIZA AS VARIÁVEIS $linha_atual = 0; $inicio = 0; //PÁGINAS for($x=1; $x<=$paginas; $x++) { //VERIFICA $inicio = $linha_atual; $fim = $linha_atual + $por_pagina; if($fim > $row) $fim = $row; $pdf->Open(); $pdf->AddPage(); $pdf->SetFont("Arial", "B", 9); $pdf->Image($imagem, 0, 8); $pdf->Ln(2); $pdf->Cell(185, 8, "Página $x de $paginas", 0, 0, 'R'); //QUEBRA DE LINHA $pdf->Ln(20); //MONTA O CABEÇALHO $pdf->Cell(85, 8, "NOME COMPLETO", 1, 0, 'C'); $pdf->Cell(15, 8, "IDADE", 1, 0, 'L'); $pdf->Cell(50, 8, "SALÁRIO NOVO", 1, 1, 'L'); //EXIBE OS REGISTROS for($i=$inicio; $i<$fim; $i++) { $pdf->Cell(85, 8, mysql_result($sql, $i, "NOME"), 1, 0, 'C'); $pdf->Cell(15, 8, mysql_result($sql, $i, "IDADE"), 1, 0, 'L'); $pdf->Cell(50, 8, mysql_result($sql, $i, "SALARIO_NOVO"), 1, 1, 'L'); $linha_atual++; }//FECHA FOR(REGISTROS – i) }//FECHA FOR(PAGINAS – x) //SAIDA DO PDF $pdf->Output("$end_final", "$tipo_pdf");

Você precisa baixar a biblioteca FPDF e descompactá-la num local qualquer. Para baixar, acesse o site www.fpdf.org/.



 
VoltarTopo