This is an example of a PDF document generated using Laravel and DomPDF.
A criação de documentos PDF é um requisito comum em aplicações web, especialmente para geração de faturas, recibos, certificados, tickets e relatórios diversos. Neste tutorial abrangente, nos aprofundaremos no uso do Laravel e DomPDF para gerar documentos PDF com imagens e CSS. Abordaremos opções de configuração, considerações de design, tamanho de saída, desempenho e consultas de banco de dados. Além disso, discutiremos dicas e truques para lidar com quebras de página, carregar imagens usando base64 e muito mais.
Antes de começarmos, certifique-se de ter o seguinte instalado:
DomPDF é uma biblioteca PHP popular que permite gerar documentos PDF a partir de conteúdo HTML. Suporta estilo CSS, imagens e várias opções de configuração. Ao integrar o DomPDF ao Laravel, você pode criar facilmente documentos PDF sofisticados usando modelos Blade e os recursos poderosos do Laravel.
Outras bibliotecas PDF populares incluem TCPDF, FPDF e Snappy.
No entanto, DomPDF é amplamente utilizado devido à sua facilidade de integração e conjunto robusto de recursos.
Neste tutorial, percorreremos o processo de configuração de um projeto Laravel, configuração do DomPDF, criação de um controlador para lidar com a geração de PDF, design de um modelo Blade para o conteúdo PDF, adição de rotas e otimização de desempenho. Também discutiremos opções de configuração avançada e forneceremos dicas e truques para gerar documentos PDF de alta qualidade.
Este tutorial pressupõe que você tenha um conhecimento básico de Laravel e PHP. Se você é novo no Laravel, considere consultar a documentação oficial do Laravel para se familiarizar com o framework. Caso contrário, você pode seguir o Laravel Bootcamp para começar a usar o Laravel.
Primeiro, crie um novo projeto Laravel se ainda não tiver um, ou use um projeto existente. Claro, você pode pular esta etapa se já tiver um projeto Laravel.
composer create-project --prefer-dist laravel/laravel pdf-tutorial cd pdf-tutorial
Em seguida, instale o DomPDF:
composer require barryvdh/laravel-dompdf
Publique o arquivo de configuração:
php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"
Abra o arquivo config/dompdf.php. O arquivo de configuração contém várias opções para personalizar a saída do PDF. Aqui você pode definir várias opções, incluindo tamanho de papel padrão, orientação, fonte e muito mais.
'default_paper_size' => 'a4',
'orientation' => 'portrait',
'default_font' => 'serif',
Crie um controlador para lidar com a geração de PDF:
php artisan make:controller PDFController
Em app/Http/Controllers/PDFController.php, adicione o seguinte código:
'Laravel PDF Example', 'date' => date('m/d/Y'), ]; $pdf = PDF::loadView('myPDF', $data); return $pdf->download('document.pdf'); } }
Crie um modelo Blade para o conteúdo PDF:
touch resources/views/myPDF.blade.php
Adicione o seguinte conteúdo a myPDF.blade.php:
Laravel PDF Example {{ $title }}
Date: {{ $date }}
This is an example of a PDF document generated using Laravel and DomPDF.
Adicione rotas para lidar com a geração de PDF em rotas/web.php:
use App\Http\Controllers\PDFController; Route::get('generate-pdf', [PDFController::class, 'generatePDF']);
Você pode adicionar imagens ao PDF incorporando-as como strings codificadas em base64 ou usando URLs.
As imagens podem ser incorporadas diretamente no modelo Blade usando codificação base64. Por exemplo, para incorporar uma imagem do público/imagens, é assim que você pode fazer:
Ou diretamente de um URL:
Ao lidar com grandes conjuntos de dados (por exemplo, 1.000 registros), use paginação ou fragmentação para gerenciar o uso de memória:
$data = DB::table('users')->paginate(50); $pdf = PDF::loadView('myPDF', ['data' => $data]);
Para reduzir o tamanho da saída, minimize o uso de imagens pesadas e opte por gráficos vetoriais quando possível. Além disso, use CSS eficiente.
Garanta que o conteúdo esteja bem estruturado para quebras de página. Use CSS para lidar com quebras de página:
.page-break { page-break-after: always; }
E no seu modelo Blade:
Para configurações mais avançadas, consulte a documentação do DomPDF. Você pode personalizar quase tudo, desde as margens até a forma como as fontes são carregadas.
Para usar fontes personalizadas, primeiro adicione-as ao seu projeto e configure o DomPDF para usá-las:
'custom_font_dir' => base_path('resources/fonts/'), 'custom_font_data' => [ 'custom-font' => [ 'R' => 'CustomFont-Regular.ttf', 'B' => 'CustomFont-Bold.ttf', ] ],
No seu modelo Blade:
Seguindo este guia passo a passo, você pode gerar documentos PDF sofisticados usando Laravel e DomPDF, completos com imagens e estilo CSS. Este tutorial abordou opções essenciais de configuração, considerações de design e otimização de desempenho. Você pode expandir essa base para construir um sistema robusto de geração de documentos para sua aplicação Laravel.
Este tutorial faz parte de uma série sobre geração de PDF com Laravel. Um repositório completo com diversos modelos de documentos (faturas, recibos, certificados, tickets, etc.) pode ser encontrado aqui. Sinta-se à vontade para contribuir e expandir a coleção.
Boa codificação!
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3