mPDF é uma biblioteca PHP que gera arquivos PDF a partir de HTML codificado em UTF-8.
É baseado em FPDF e HTML2FPDF (ver CRÉDITOS), com diversas melhorias. mPDF foi escrito por Ian Back e é lançado sob a licença GNU GPL v2.
Se você estiver visualizando este arquivo na página inicial do repositório mPDF GitHub ou no Packagist, observe que o branch padrão do repositório é development
, que pode ser diferente da última versão estável.
PHP >=5.6 <7.3.0
é compatível com mPDF >= 7.0
PHP 7.3
é suportado desde mPDF v7.1.7
PHP 7.4
é suportado desde mPDF v8.0.4
PHP 8.0
é suportado desde mPDF v8.0.10
PHP 8.1
é suportado a partir do mPDF v8.0.13
PHP 8.2
é suportado a partir do mPDF v8.1.3
PHP 8.3
é suportado a partir do mPDF v8.2.1
PHP 8.4
é suportado a partir do mPDF v8.2.5
As extensões PHP mbstring
e gd
devem ser carregadas.
Extensões adicionais podem ser necessárias para alguns recursos avançados, como zlib
para compactação de saída e recursos incorporados, como fontes, bcmath
para geração de códigos de barras ou xml
para conversão de conjunto de caracteres e manipulação de SVG.
O mPDF tem alguns problemas ao buscar recursos HTTP externos com servidores de thread único, como php -S
. Recomenda-se um servidor adequado como nginx (php-fpm) ou Apache.
Considere apoiar o desenvolvimento do mPDF com uma doação de qualquer valor. O botão de doação pode ser encontrado na página principal da documentação.
O método oficial de instalação é via compositor e seu pacote packagist mpdf/mpdf.
$ composer require mpdf/mpdf
O uso mais simples (desde a versão 7.0) da biblioteca seria o seguinte:
<?phprequire_once __DIR__ . '/vendor/autoload.php';$mpdf = new MpdfMpdf();$mpdf->WriteHTML('<h1>Olá mundo!</h1>');$mpdf->Output();
Isso produzirá o PDF embutido no navegador como tipo de conteúdo application/pdf
.
Todas as diretivas de configuração podem ser definidas pelo parâmetro $config
do construtor.
Recomenda-se definir o próprio diretório temporário por meio da variável de configuração tempDir
. O diretório deve ter permissões de gravação (o modo 775
é recomendado) para usuários que usam mPDF (normalmente cli
, webserver
, fpm
).
Aviso: o mPDF limpará arquivos temporários antigos no diretório temporário. Escolha um caminho dedicado apenas ao mPDF.
<?php$mpdf = new MpdfMpdf(['tempDir' => __DIR__ . '/tmp']);
Por padrão, o diretório temporário estará dentro do diretório vendor e terá permissões de gravação do script post_install
compositor.
Para obter mais informações sobre diretório temporário personalizado, consulte a nota sobre Pasta para arquivos temporários na seção Instalação e configuração do manual.
Se você tiver problemas, leia a seção sobre solução de problemas no manual.
O mPDF como um todo é um software bastante desatualizado. Hoje em dia, existem alternativas melhores disponíveis, embora não escritas em PHP.
Use o mPDF se você não puder usar uma abordagem não-PHP para gerar arquivos PDF ou se quiser aproveitar alguns dos benefícios do mPDF em relação à abordagem do navegador – manipulação de cores, pré-impressão, suporte a códigos de barras, cabeçalhos e rodapés, numeração de páginas, sumários, etc. Mas tome cuidado, pois pode ser necessário um modelo HTML/CSS adaptado para mPDF.
Se você está procurando suporte CSS de última geração, espelhando páginas HTML existentes em PDF, use o Chrome headless.
O mPDF ainda será atualizado para aprimorar alguns recursos internos e para suportar versões mais recentes do PHP, mas um suporte CSS melhor e/ou mais recente provavelmente não será implementado.
O manual online está disponível em https://mpdf.github.io/.
Para perguntas gerais ou solução de problemas, use Discussões.
Você também pode usar a tag mpdf no Stack Overflow, pois é mais provável que a base de usuários do StackOverflow responda em tempo hábil.
Antes de enviar problemas e solicitações pull, leia o arquivo CONTRIBUTING.md.
O teste unitário para mPDF é feito usando PHPUnit.
Para começar, execute composer install
a partir da linha de comando enquanto estiver no diretório raiz do mPDF (você precisará instalar o compositor primeiro).
Para executar testes, execute composer test
na linha de comando enquanto estiver no diretório raiz do mPDF.
Qualquer assistência na escrita de testes unitários para mPDF é muito apreciada. Se você quiser ajudar, observe que qualquer arquivo PHP localizado no diretório /tests/
será carregado automaticamente durante o teste de unidade.