Crie PDF em PHP
Este artigo apresentará métodos para criar PDF em PHP. Vamos recuperar os dados do banco de dados, colocá-los no PDF e fazer o download.
Use a biblioteca mpdf
para criar PDF em PHP
Podemos usar a biblioteca externa mpdf
para criar um PDF em PHP. Podemos recuperar os dados do banco de dados, armazená-los em PDF e fazer o download do PDF. Usando esta biblioteca, podemos criar PDF a partir de documentos HTML. Os documentos HTML devem ser codificados em UTF-8. Podemos recuperar os dados a serem adicionados ao PDF do banco de dados em formato HTML. Podemos baixá-lo pelo comando composer require mpdf/mpd
do diretório do projeto para usar a biblioteca. O comando instalará a biblioteca mpdf
no diretório do projeto. Um arquivo vendor
será criado e precisamos usar a função require()
para incluir o arquivo autoload.php
localizado dentro da pasta vendor
. Precisamos ter certeza de que o diretório onde a biblioteca está instalada deve ter permissão de gravação.
Vamos criar um objeto a partir do construtor Mpdf()
e usar métodos como WriteHTML()
e output()
para criar o PDF. Existem diferentes modos em que podemos gerar o PDF. Podemos especificar os modos no segundo parâmetro do método output()
. Os diferentes modos são representados pelas opções D
, I
, F
e S
. A opção D
forçará o download do PDF após a execução do script. A opção I
mostrará o PDF no navegador após a execução do script. Enquanto isso, a opção F
fará o download do PDF salvo na pasta relativa ao arquivo PHP. Por último, a opção F
produzirá o pdf no navegador apenas quando o método output()
for atribuído a uma variável.
Por exemplo, temos um banco de dados denominado phprow
contendo uma tabela denominada Pessoas
. A tabela Pessoas
contém os seguintes dados.
+----------+----------+-----------+
| PersonID | Name | Address |
+----------+----------+-----------+
| 22 | Harry M | England |
| 32 | Paul P | France |
+----------+----------+-----------+
Primeiro, use a função require()
para incluir o arquivo vender/autoload.php
. Em seguida, crie e estabeleça uma conexão de banco de dados, execute a consulta SQL para selecionar os dados do banco de dados e crie uma tabela na variável $html
. Use o .
operador para concatenar a variável $html
com os corpos da tabela. Crie uma tabela com os cabeçalhos de tabela ID
, Name
e Address
. Em seguida, preencha a tabela recuperando os dados mostrados acima da tabela Persons
.
Código de exemplo:
require('vendor/autoload.php');
$con=mysqli_connect('localhost','root','','phprow');
$res=mysqli_query($con,"select * from Persons");
if(mysqli_num_rows($res)>0){
$html='<table>';
$html.='<tr><td>ID</td><td>Name</td><td>Address</td>';
while($row=mysqli_fetch_assoc($res)){
$html.='<tr><td>'.$row['PersonID'].'</td><td>'.$row['Name'].'</td><td>'.$row['Address'].'</td></tr>';
}
$html.='</table>';
}
No exemplo acima, armazenamos uma tabela com os dados do banco de dados na variável $html
. Usamos o .
operador para concatenar todos os elementos da tabela. Assim, preparamos um documento HTML para ser escrito em PDF.
Em seguida, crie uma variável chamada $mpdf
. Atribua o objeto do construtor Mpdf()
à variável usando a palavra-chave new
. Chame a função WriteHTML()
com a variável $html
como o parâmetro com o objeto. Em seguida, crie outra variável, $file
, para armazenar o PDF. Junte files/
com a função time()
e concatene-o novamente com .pdf
para criar o nome do arquivo. Armazene-o na variável $file
. Por último, chame a função output()
com $file
como primeiro parâmetro e a opção I
como segundo parâmetro.
Assim, recuperamos os dados do banco de dados e criamos um PDF com esses dados. O exemplo abaixo cria um arquivo com o nome da hora atual com uma extensão .pdf
dentro da pasta files
. O PDF será mostrado no navegador após a execução do script. Podemos baixar o PDF do navegador.
Código de exemplo:
$mpdf=new \Mpdf\Mpdf();
$mpdf->WriteHTML($html);
$file='files/'.time().'.pdf';
$mpdf->output($file,'I');
Use a biblioteca dompdf
para criar PDF em PHP
A biblioteca dompdf
também é uma opção para criar e baixar um PDF em PHP. Ele nos permite carregar o HTML no PDF. Esta biblioteca é muito semelhante à biblioteca mpdf
; apenas os métodos são diferentes. Usaremos métodos como loadHtml()
, render()
e stream()
. Precisamos baixar a biblioteca para nosso diretório de trabalho usando o comando composer require dompdf/dompdf
. Ele criará a pasta vendor
como no primeiro método junto com os arquivos composer.json
e composer.lock
.
Por exemplo, exija vendor/autoload.php
como a primeira linha do código no programa. Em seguida, escreva a palavra-chave use
para importar a classe Dompdf
como use Dompdf/Dompdf
. Podemos usar a mesma tabela HTML do método acima para carregar no PDF.
require 'vendor/autoload.php';
use Dompdf\Dompdf;
Após armazenar o HTML em uma variável $html
, crie outra variável $dompdf
para criar um objeto da classe Dompdf
. Em seguida, chame o método loadHtml()
com $html
como parâmetro. Em seguida, chame a função render()
e, em seguida, a função stream()
com o objeto $dompdf
.
O exemplo abaixo criará um PDF com a tabela como no primeiro método. O método render()
renderiza o HTML como um arquivo PDF, e o método stream()
gera o HTML renderizado para o navegador. Assim, podemos criar um PDF usando a biblioteca dompdf
em PHP.
Código de exemplo:
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->stream();
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn