Fale Conosco (15) 99683-8272

Materiais educativos Login do aluno

Menu principal

Navegue pela agência

Últimas novidades

Está rolando por aqui

Onde nos encontrar?

Rua Lucas de Camargo, 257, Centro
Itapeva - SP 18400-340

WhatsApp: (15) 9 9683-8272

Gerar PDF com PHP e HTML usando a biblioteca mPDF

Saiba como gerar PDF profissionais usando a biblioteca mPDF e aprenda a criar um modelo de recibo de pagamento em PDF, a partir desse exemplo crie qualquer tipo de arquivo PDF que você precisar.
Gerar PDF com PHP e HTML usando a biblioteca mPDF

Para servir como exemplo neste artigo, vamos criar um documento de Recibo de Pagamento em PDF usando a biblioteca mPDF como no exemplo dado abaixo.

CONFIRA O RESULTADO DESTE TUTORIAL

Pré-requisitos

Assim que você fizer o download da biblioteca mPDF, descompacte-o dentro da pasta onde você poderá efetuar os testes, aqui eu uso o XAMPP para localhost, então crio uma pasta chamada gerando-pdf-com-mpdf, ficando localhost/gerando-pdf-com-mpdf e dentro dessa pasta eu descompactei a biblioteca.

Obs. Não exagere no uso de CSS para estilizar o seu documento PDF, pois a biblioteca mPDF infelizmente ainda é limitada neste quesito. Saiba quais são as propriedades suportadas por ela aqui.

Script para gerar PDF com PHP e HTML usando mPDF

Gerar PDF com PHP e HTML usando a biblioteca mPDF

Vamos lá, para iniciarmos, criamos o arquivo index.php dentro da pasta gerando-pdf-com-mpdf

index.php

<?php 
include("mpdf60/mpdf.php");

$html = "
<fieldset>
<h1>Recibo de Pagamento</h1>
<p class='center sub-titulo'>
Nº <strong>0001</strong> -
VALOR <strong>R$ 700,00</strong>
</p>
<p>Recebi(emos) de <strong>Ebrahim Paula Leite</strong></p>
<p>a quantia de <strong>Setecentos Reais</strong></p>
<p>Correspondente a <strong>Serviços prestados ..<strong></p>
<p>e para clareza firmo(amos) o presente.</p>
<p class='direita'>Itapeva, 11 de Julho de 2017</p>
<p>Assinatura ......................................................................................................................................</p>
<p>Nome <strong>Alberto Nascimento Junior</strong> CPF/CNPJ: <strong>222.222.222-02</strong></p>
<p>Endereço <strong>Rua Doutor Pinheiro, 144 - Centro, Itapeva - São Paulo</strong></p>
</fieldset>
<div class='creditos'>
<p><a href='https://www.webcreative.com.br/artigo/gerar-pdf-com-php-e-html-usando-a-biblioteca-mpdf' target='_blank'>Aprenda como gerar PDF com PHP e HTML usando a biblioteca MPDF aqui</a></p>
</div>
";

$mpdf=new mPDF();
$mpdf->SetDisplayMode('fullpage');
$css = file_get_contents("css/estilo.css");
$mpdf->WriteHTML($css,1);
$mpdf->WriteHTML($html);
$mpdf->Output();

exit;

Como disse no começo, esse index vai gerar um documento de Recibo como exemplo. Você pode criar qualquer tipo de documento desde que saiba como usar o HTML e CSS.

Agora crie uma pasta chamada css e nela crie um arquivo estilo.css

estilo.css

fieldset{
width: 750px;
margin: 10px auto;
color: #444;
border: 5px solid #ccc;
font-family: Helvetica;
padding: 15px;
}

h1{
text-align: center;
}

p.sub-titulo{
font-size: 20px;
}

.direita{
text-align: right;
}

.center{
text-align: center;
}

Pronto, agora você gerou o seu primeiro arquivo PDF usando a biblioteca mPDF :)

Baixe os arquivos desse tutorial aqui

Use sua criatividade e crie novos PDF's para seu projeto ou sistema. Se tiver alguma dúvida deixe um comentário abaixo que terei o prazer em te ajudar.

Deixe um comentário

Enviando Comentário Fechar
Já temos 23 comentários
Xavier Ramos

Xavier Ramos

29 de maio de 2018 às 18:19

Com a mpdf é possivel anexar um arquivo pdf e enviar para o cliente
Enviando Comentário Fechar
Paulo Galego

Paulo Galego

3 de abril de 2018 às 09:47

Olá, apareceu uma mensagem ao abri o exemplo: falha ao carregar o documento. Estou usando php 7....
Enviando Comentário Fechar
Naimar Nunes

Naimar Nunes

27 de fevereiro de 2018 às 08:53

Bom dia meu amigo, consigo paginar isso ??? Definir um conteúdo para a primeira página e um conteúdo para a segunda página ???

Abraços...
Enviando Comentário Fechar
Pedro Afonso

Pedro Afonso

21 de fevereiro de 2018 às 22:55

Não consigo gerar 500 registos com mpdf
Enviando Comentário Fechar
Ciro Peixoto

Ciro Peixoto

15 de fevereiro de 2018 às 19:46

Parabéns, vou experimentar a bilbioteca em uma aplicação! Parabéns pelo suporte que é oferecido!!!
Enviando Comentário Fechar
Lauro Skovronski

Lauro Skovronski

8 de janeiro de 2018 às 16:39

Estou executando o exemplo da classe e da este erro FALHA AO CARREGAR O DOCUMENTO PDF.

INSPECIONANDO O DOCUMENTO APARECE ESTA MENSAGEM:
[Deprecation] Styling master document from stylesheets defined in HTML Imports is deprecated, and is planned to be removed in M65, around March 2018. Please refer to https://goo.gl/EGXzpw for possible migration paths.
TRADUZINDO:
O documento principal do estilo das folhas de estilo definidas nas Importações HTML é obsoleto e está planejado para ser removido em M65, em torno de março de 2018. Por favor, consulte https://goo.gl/EGXzpw para possíveis caminhos de migração.
==
CONSULTANDO a documentação o erro continua..
Enviando Comentário Fechar
Dionisio Magalhães

Dionisio Magalhães

24 de novembro de 2017 às 18:38

Boa tarde amigo Ebrahim, nesse recibo tem como inserir uma image?
Enviando Comentário Fechar
Alessandra Leachenski

Alessandra Leachenski

15 de novembro de 2017 às 13:37

No meu aparece "erro ao carregar documento PDF", o que pode estar acontecendo ?
Enviando Comentário Fechar
Luany Silva

Luany Silva

6 de novembro de 2017 às 15:53

Boa tarde, parabéns pelo tutorial, me ajudou muito. Mas tenho uma dúvida, ao baixar o .pdf gerado ele recebe o nome de "mpdf.pdf", existe alguma forma de alterar para algum título arbitrário? Desde já agradeço a atenção.
Enviando Comentário Fechar
Ebrahim P. Leite

Ebrahim P. Leite

6 de novembro de 2017 às 22:46

Oi Luany, Se você setar por exemplo um título não resolve na hora de fazer o download?


$mpdf->SetTitle('Título do PDF'); 

Se não der certo, você pode dar uma olhada na documentação aqui: https://mpdf.github.io

Enviando Comentário Fechar
Kelly Assunção

Kelly Assunção

3 de novembro de 2017 às 13:42

Não estou conseguindo fazer com que ele mostre a imagem. Tem como ajudar?
Enviando Comentário Fechar
Alexandro Ricci

Alexandro Ricci

29 de outubro de 2017 às 10:50

Não estou conseguindo imprimir uma imagem no relatório...
$html = "


CERTIFICADO
O que estou fazendo errado?
Enviando Comentário Fechar
Ebrahim P. Leite

Ebrahim P. Leite

29 de outubro de 2017 às 23:06

Opa Alexandro, tudo bem?

O formulário aqui interpreta o html, pode me mandar seu problema por e-mail? Ou então vá até a sua conta e na aba 'Tickets' abre um lá que a gente resolve juntos!

Abs
Enviando Comentário Fechar
Juliano Bom

Juliano Bom

26 de setembro de 2017 às 00:05

Amigo, tem como ele gerar o pdf e salvar o arquivo em uma pasta no servidor? não preciso que ele exiba o pdf, mas q gere o arquivo, salve em uma pasta e por fim grave o nome do arquivo gerado em um banco de dados...sou novo no php
Enviando Comentário Fechar
Sidnei de Cerqueira

Sidnei de Cerqueira

1 de setembro de 2017 às 10:18

Olá, preciso criar um PDF de 1,20 (1 metro e 20 centimetros), será possível?
Enviando Comentário Fechar
Ebrahim P. Leite

Ebrahim P. Leite

1 de setembro de 2017 às 14:29

Opa Sidnei, Você pode configurar o tamanho do PDF no momento que instanciar a classe do MPDF.


Exemplo:


$mpdf = new mPDF('utf-8', array(1200,2300)); //1200 = 1 metro e 20 cm comprimento | 2300 = 2 metros e 30 cm altura
Enviando Comentário Fechar
Marcio Sales

Marcio Sales

14 de julho de 2017 às 17:04

valeu a dica!.. Só aplicar num widget pra recibo e pronto... Correr pro abraço!
Enviando Comentário Fechar
Ebrahim P. Leite

Ebrahim P. Leite

14 de julho de 2017 às 17:59

Verdade Marcio, ainda mais no WC integrar com um recibo no e-commerce fica show..
Enviando Comentário Fechar
Arlei Santos

Arlei Santos

13 de julho de 2017 às 08:12

Que show mano. Parabéns pelo excelente tutorial! :)
Enviando Comentário Fechar
André Scherrer

André Scherrer

11 de julho de 2017 às 08:52

Essa lib é fantástica, crio invoices e packinglists com ela
Enviando Comentário Fechar
Ebrahim P. Leite

Ebrahim P. Leite

11 de julho de 2017 às 10:19

Verdade mesmo André muito prática e de fácil utilização :)

Enviando Comentário Fechar
Daniel Souza Souza

Daniel Souza Souza

11 de julho de 2017 às 08:10

Show de bola, cara você já tentou salvar em formato PDF/X-1a e CMYK, tinha visto um tempo atras que tinha como mais não deu muito certo. hehe. Vlw
Enviando Comentário Fechar
Ebrahim P. Leite

Ebrahim P. Leite

11 de julho de 2017 às 11:10

O mPDF é compatível com PDF/X-1a sim, porém não é 100% garantido, vai depender muito do documento. Para que ele produza arquivos PDF/X-1a é só setar $mpdf->PDFX = true; no script
Enviando Comentário Fechar

| Informe seu e-mail abaixo para continuar!