Fala pessoal, tudo bom? Trazendo mais uma vez aqui uma biblioteca muito interessante para se trabalhar no dia a dia com PHP. Um dia desses no slack do PHPSP perguntaram uma maneira legal de se gerar PDF.Pesquisando achei um projeto legal: https://github.com/mikehaertl/phpwkhtmltopdf. Ele utiliza por trás o wkhtmltopdf e consegue gerar pdfs a partir de qualquer html, inclusive de sites aleatórios.
Vamos ver como isso funciona na prática. Para isso, vamos instalar o mikehaertl/phpwkhtmltopdf na nossa pasta pdf
composer require mikehaertl/phpwkhtmltopdf
Feito isso, você deverá fazer a instalação do wkhtmltopdf no site oficial. Você deverá obter o caminho onde foi salvo o wkhtmltopdf.
Agora, vamos ao código.
Vamos gerar um pdf do site do Google por exemplo, salvando ele como google.pdf:
<?php
require_once 'vendor/autoload.php'; // carregando o autoload
use mikehaertl\wkhtmlto\Pdf; //instanciando a classe de Pdf
$binary = 'c:/wkhtmltopdf/bin/wkhtmltopdf.exe'; //definindo o caminho do binário
$pdf = new Pdf('https://google.com'); //definindo qual a URL a ser transformada em PDF
$pdf->binary = $binary; //setando o binário
if (!$pdf->saveAs('google.pdf')) { //salvando como google.pdf e verificando erros
$error = $pdf->getError();
print($error);
}
Executando geramos o seguinte PDF:
Podemos também fazer composições com mais páginas:
<?php
require_once 'vendor/autoload.php'; // carregando o autoload
use mikehaertl\wkhtmlto\Pdf; //instanciando a classe de Pdf
$binary = 'c:/wkhtmltopdf/bin/wkhtmltopdf.exe'; //definindo o caminho do binário
$pdf = new Pdf;
$pdf->addPage('https://google.com'); //definindo qual a URL a ser transformada em PDF
$pdf->addPage('https://github.com'); //definindo qual a URL a ser transformada em PDF
$pdf->addPage('https://facebook.com'); //definindo qual a URL a ser transformada em PDF
$pdf->binary = $binary; //setando o binário
if (!$pdf->saveAs('pages.pdf')) {
$error = $pdf->getError();
print($error);
}
E o PDF gerado é um pouco maior:
Você pode fazer muito mais com essa biblioteca, como salvar imagens direto de sites. Compor PDFs através de código HTML, entre outros. Para isso, basta ver a documentação oficial.
Espero ter ajudado você que precisava gerar PDFs de maneira simples em PHP.