Instalação
Artigos
Cursos
Loja
INSTALAÇÃO
ARTIGOS
CURSOS
EBOOKS
DOWNLOADS
LOJA
ARTIGOS
Como converter HTML para PDF usando PHP
Conheça o poder da biblioteca DomPDF
# Como converter HTML para PDF Por inúmeros motivos é comum surgir esta demanda de, converter uma tela de aplicação para PDF. Ao procurar na internet você encontrará diversas maneiras/bibliotecas que oferecem esta opção. Para `PHP` a mais famosa delas é a `dompdf`. A biblioteca `dompdf` oferece muitas funções e uma delas é transformar HTML em PDF, em resumo ela baixará e lerá folhas de estilo externas, tags de estilo embutido e os atributos de estilo de elementos HTML individuais, gerando assim um arquivo PDF.
## Recursos * Trabalha com quase todas as funcionalidades do CSS 2.1 e algumas do CSS3 * Suporta a maioria dos atributos do HTML 4 * Suporta arquivos externos de estilo sejam por HTTP ou FTP * Suporta tabelas complexas, incluindo estilos individuais por célula * Suporta os formatos de imagem: gif, png, bmp e jpeg ## Instalação ### Pré-requisitos * PHP 5.4 ou superior * Extensão DOM * Extensão GD * Extensão MBstring * php-font-lib * php-svg-lib ### Composer A maneira mais simples de instalar a dompdf é utilizando composer, com ele basta a seguinte linha de código no projeto: ```r $ composer require dompdf/dompdf ``` ### Download Outra maneira de instalar a dompdf é realizando o download do projeto, para baixar o projeto [acesse este link]([https://github.com/dompdf/dompdf/releases](https://github.com/dompdf/dompdf/releases)). ### Git Uma terceira maneira de instalar a dompdf é utilizando linha de comando e instalando com o Git, para isso é necessário seguir estes passos: ```r $ git clone https://github.com/dompdf/dompdf.git $ cd dompdf $ git clone https://github.com/PhenX/php-font-lib.git lib/php-font-lib $ cd lib/php-font-lib $ git checkout 0.5.1 $ cd .. $ git clone https://github.com/PhenX/php-svg-lib.git php-svg-lib $ cd php-svg-lib $ git checkout v0.3 ```
## Uso básico Para usar a dompdf é muito simples, basicamente é invocar a classe e renderizar a saída do HTML. Veja como é simples, abaixo todo o código-fonte necessário para transformar um HTMl simples em PDF: ```php loadHtml('hello world'); // (Opcional) Tipo do papel e orientação $dompdf->setPaper('A4'); // Render HTML para PDF $dompdf->render(); // Download do arquivo $dompdf->stream(); ``` ### Exemplo com HTML com CSS inline ```php Using the
table-layout
property
Example text
Example text
Here is a longer piece of text
Example text
A much longer piece of content for demo purposes. More goes here.
Example text
Example text
Example text
Example text
Example text
Example text
Example text
Example text
Example text
Example text
Example text
Toggle table-layout: fixed
'; // html que será transformado em PDF $dompdf->loadHtml($html); // (Opcional) Tipo do papel e orientação $dompdf->setPaper('A4'); // Render HTML para PDF $dompdf->render(); // Download do arquivo $dompdf->stream(); echo $html; ``` ### Exemplo com HTML com CSS externo É possível gerar PDF de arquivos HTML mais complexos, para esses é recomendado que o css seja importado diretamente dentro do HTML. Veja o exemplo abaixo: **Arquivo HTML** ```html
Company
Contact
Country
Alfreds Futterkiste
Maria Anders
Germany
Berglunds snabbköp
Christina Berglund
Sweden
Centro comercial Moctezuma
Francisco Chang
Mexico
Ernst Handel
Roland Mendel
Austria
Island Trading
Helen Bennett
UK
Königlich Essen
Philip Cramer
Germany
Laughing Bacchus Winecellars
Yoshi Tannamuri
Canada
Magazzini Alimentari Riuniti
Giovanni Rovelli
Italy
North/South
Simon Crowther
UK
Paris spécialités
Marie Bertrand
France
``` **Arquivo CSS** ```css #customers { font-family: "Trebuchet MS", Arial, Helvetica, sans-serif; border-collapse: collapse; width: 100%; } #customers td, #customers th { border: 1px solid #ddd; padding: 8px; } #customers tr:nth-child(even) { background-color: #f2f2f2; } #customers tr:hover { background-color: #ddd } #customers th { padding-top: 12px; padding-bottom: 12px; text-align: left; background-color: #4CAF50; color: white; } ``` **Arquivo PHP** ```php loadHtml($html); // (Opcional) Tipo do papel e orientação $dompdf->setPaper('A4'); // Render HTML para PDF $dompdf->render(); // Download do arquivo $dompdf->stream(); echo $html; ```
Desta maneira o HTML exibido em tela será transformado para PDF.
COMENTE SOBRE