Artigo: Criando um relatório PDF com PHP - Gigasystems

PHP

Em por

Fazer relatórios com PHP pode parecer uma tarefa muito difícil por ter que trabalhar com muitos arquivos de bibliotecas principalmente em projetos WEB, e uma das coisas mais legais que pude encontrar para a resolução deste problema, foi a classe mPDF. Com ela é possível gerar PDF com PHP.

Criando relatório pdf com php

Nesse artigo vamos abordar a utilização de uma biblioteca chamada mPDF. Essa biblioteca é capaz de criar arquivos PDF a partir da linguagem HTML sendo possível inclusive, a utilização de CSS para estilizar seu conteúdo.

mPDF

mPDF nada mais é que uma biblioteca pronta, e melhor, totalmente free. Ela é capaz de gerar arquivos do tipo PDF através do HTML de sua página WEB.

Com a classe mPDF tudo se torna mais fácil, pois você só precisará gerar um conteúdo em HTML que ela fara todo o trabalho sozinha.

Gerando o relatório

Primeiramente faça o download da biblioteca mPDF AQUI, ou no final do artigo com o exemplo completo, com todos os arquivos.

Feito o download, vamos montar o projeto da seguinte forma.

Crie um diretório chamado PDF, ela será nossa pasta principal onde conterá todos nossos arquivos.

Dentro do diretório PDF, coloque a pasta baixada do mPDF, e crie um arquivo index.php na raiz do projeto, ou seja, dentro do diretório que acabara de criar, o PDF.

Organizado nosso projeto, vamos configurar nosso index.

<?php
		//definimos uma constante com o nome da pasta
		define('MPDF_PATH', 'MPDF57/');
		//incluimos o arquivo
		include(MPDF_PATH.'mpdf.php');
		//definimos o timezone para pegar a hora local
		date_default_timezone_set('America/Sao_Paulo');
		//criamos uma variavel e colocamos nela tudo que desejamos que nosso pdf contenha
		$html = "Ol&aacute; mundo";
		//instanciamos nossa classe mPDF
		$mpdf=new mPDF();
		//definimos o tipo de exibicao
		$mpdf->SetDisplayMode('fullpage');
		//definimos estilos de fonts
		$mpdf->useOnlyCoreFonts = true;
		$mpdf->watermark_font = 'DejaVuSansCondensed';
		//definimos se vamos exibir a marca d'agua
		$mpdf->showWatermarkText = true;
		$mpdf->SetWatermarkText('Marca d\'agua');
		//colocamos um icone de logo tipo no pdf 
		$mpdf->SetWatermarkImage('icones/logoif.png', 1, '', array(140,10));
		//definimos se sera exibido ou nao o logo no pdf
		$mpdf->showWatermarkImage = true;
		//escrve o titulo de nosso pdf
		$mpdf->WriteHTML('<br/><h1>T&iacute;tulo do PDF</h1><hr/>');
		//definimos oque vai conter no rodape do pdf
		$mpdf->SetFooter('{DATE j/m/Y  H:i}||Pagina {PAGENO}/{nb}');
		//e finalmente escrevemos todo nosso conteudo no pdf para exibir
		$mpdf->WriteHTML($html);
		//fechamos nossa instancia ao pdf
		$mpdf->Output();
		//pausamos a tela para exibir o que foi feito
		exit();
?>

Pronto, a partir daí você já conseguirá criar relatórios em PDF, na qual todo conteúdo que você deseja adicionar ao arquivo, basta incluir a variável $html, ou você pode fazer de outra forma também, fica a seu critério.

Você pode incluir uma página inteira de html através do buffer da seguinte maneira.

Crie uma página qualquer html com um conteúdo.

<div id="descricaoprof">
	<span>Coordenador</span>
	<hr/>
	<h2>Professor x</h2>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed volutpat, mi in ullamcorper ultricies, augue tortor mattis turpis, in luctus tortor neque vitae odio... <a href="#">Leia mais</a><p>
</div>

E na hora que chamar o index para gera o PDF, inicie o buffer e de um include da página que contém o html.

//Inicia o buffer, qualquer HTML que for sair agora será capturado para o buffer
ob_start(); 
include(‘conteudo.html’);
//Limpa o buffer jogando todo o HTML em uma variável.
$html = ob_get_clean();
$mpdf=new mPDF();
//e escreve todo conteudo html vindo de nossa página html em nosso arquivo
$mpdf->WriteHTML($html);

Bom, foi apresentado nesse tutorial a biblioteca mPDF para a criação de relatórios em arquivos PDF para projetos, sistemas etc. Abordando como baixa-lo e usá-lo.

Para fazer download do arquivo completo CLIQUE AQUI...

Dúvidas, críticas ou sugestões comentem abaixo que teremos o prazer em ajuda-lo. =)

Olá, deixe seu comentário para Criando um relatório PDF com PHP

Já temos 7 comentário(s). DEIXE O SEU :)
Wiliam Franklin Jacinty dos Santos

Wiliam Franklin Jacinty dos Santos

estou com esse erro nos relatorios, pode me dizer oq seria??

A PHP Error was encountered

Severity: 8192

Message: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

Filename: includes/functions.php

Line Number: 74

A PHP Error was encountered

Severity: 8192

Message: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead

Filename: includes/functions.php

Line Number: 75
★☆☆☆☆DIA 03.12.15 12h12RESPONDER
N/A
Enviando Comentário Fechar :/
Leonardo Martins

Leonardo Martins

Boa tarde, este seu erro está acontecendo porque a função preg_replace() foi deprecated, ou seja, ela não funciona mais, substitua a função por srt_replace() e deverá corrigir os erros.
★☆☆☆☆DIA 09.12.15 16h12RESPONDER
N/A
Enviando Comentário Fechar :/
Marcos Cutrim

Marcos Cutrim

boa tarde,
aconteceu o seguinte erro: Fatal error: Class 'mPDF' not found in C:\Program Files\EasyPHP-5.3.5.0\www\pdf\index.php on line 12
obrigado,
★☆☆☆☆DIA 18.11.15 12h11RESPONDER
Marcos Martins
Enviando Comentário Fechar :/
Leonardo Martins

Leonardo Martins

Boa tarde Marcos, obrigado pelo comentário. Então esse erro está acusando que não foi encontrado a classe mPDF, verifique se ela foi inserida corretamente, se o caminho está correto e se a classe foi instanciada, isso deve resolver!
★☆☆☆☆DIA 24.11.15 13h11RESPONDER
N/A
Enviando Comentário Fechar :/
Osvino Bittencourt

Osvino Bittencourt

Isso ai, outra dica tmb é usar Cookies, segue a mesma ideia, porem armazena no própia maquina do visitante :).
★★★★★DIA 05.04.18 17h14RESPONDER
N/A
Enviando Comentário Fechar :/
Denis

Denis

Muito bom..
★☆☆☆☆DIA 02.11.15 01h11RESPONDER
N/A
Enviando Comentário Fechar :/
Leonardo Martins

Leonardo Martins

Obrigado Denis, volte sempre e bons estudos!
★☆☆☆☆DIA 04.11.15 13h11RESPONDER
N/A
Enviando Comentário Fechar :/
Enviando Comentário Fechar :/

Veja Também:

Artigos Relacionados a categoria: PHP

Soluções

...CURTIU? AINDA NÃO VIU NOSSO PORTFÓLIO?


Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite, veja agora mesmo nossos Cases de Sucesso e tenha seu site nos padrões atuais preparado para maioria dos dispositivos e navegadores.