Mesclar PDFs com PHP

Mesclar PDFs com PHP

Neste artigo vamos ver como é possível mesclar arquivos PDF utilizando PDF. Vou mostrar dois exemplos, o primeiro usando PHP sem frameworks, o segundo exemplo utilizando o framework Laravel.

 

O primeiro exemplo será com PHP sem frameworks. Para isso, será necessário instalar duas bibliotecas, a primeira se chama FPDF e a segunda se chama FPDI. Os links para download voê confere a seguir:

 

target="_blank">http://www.fpdf.org

 

target="_blank">https://www.setasign.com/products/fpdi/about/

 

A utilização é bem simples. Será criado um PDF em branco, e os arquivos desejados serão adicionados ao novo arquivo. No final, será feito o download.

 

require_once(__DIR__ . '/inc/fpdf/fpdf.php');

require_once(__DIR__ . '/inc/fpdi/src/autoload.php');

use setasignFpdiFpdi;

$pdf = new Fpdi();

$arquivos = ['arquivo1.pdf','arquivo2.pdf','arquivo3.pdf','arquivo4.pdf','arquivo5.pdf'];

foreach ($arquivos as $arquivo) {

    $pageCount = $pdf->setSourceFile($arquivo);

    for ($i = 0; $i < $pageCount; $i++) {

        $tpl = $pdf->importPage($i + 1);

        $pdf->addPage();

        $pdf->useTemplate($tpl);

    }

}

//Dowload direto

$pdf->Output('D','novo_arquivo.pdf');

 

Agora vamos ver um exemplo de como fazer isso utilizando o framework Laravel

 

Para fazer o merge de arquivos usando Laravel primeiro você precisa instalar um pacote chamado lara-pdf-merger.

 

composer require lynx39/lara-pdf-merger

 

Depois de instalar este pacote, edite o seu arquivo config/app.php, adicionando um provider e um alias.

 

'providers' => [

....

LynX39LaraPdfMergerPdfMergerServiceProvider::class,

],

  

'aliases' => [

....

'PdfMerger' => LynX39LaraPdfMergerFacadesPdfMerger::class,

]

 

Depois de feita esta configuração, você pode usar o pacote em seu controller da seguinte forma:

 

$pdf = new LynX39LaraPdfMergerPdfManage;

$pdf->addPDF(public_path('/minha_pasta/meu_arquivo_pdf_1.pdf'), 'all');

$pdf->addPDF(public_path('/minha_pasta/meu_arquivo_pdf_2.pdf'), 'all');

$pdf->merge('file', public_path('/minha_pasta/novo_arquivo_pdf.pdf'), 'P');

 

No exemplo acima, foi criado um novo arquivo com o conteudo dos dois arquivos informados.

 

Outros conteudos que podem ser de seu interesse

Enviar e-mails com anexos utilizando PHP
20/08/2023PHP

Enviar e-mails com anexos utilizando PHP

Veja duas formas de enviar e-mails com anexos utilizando PHP

Saiba mais...
Cotação do dólar com PHP
23/08/2020PHP

Cotação do dólar com PHP

Como obter o valor do dólar através de uma API do Banco Central utilizando PHP

Saiba mais...
Listando arquivos com PHP
25/09/2022PHP

Listando arquivos com PHP

Veja as várias formas de listar arquivos com PHP

Saiba mais...

Conteúdo sobre banco de dados sem complicação!


Warning: Cannot modify header information - headers already sent by (output started at /home/storage/f/7d/a9/dbins/public_html/blog/post.php:101) in /home/storage/f/7d/a9/dbins/public_html/blog/ga4_track.php on line 11