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

Trabalhando com arrays no PHP
18/04/2021PHP

Trabalhando com arrays no PHP

Aprenda como listar, ordenar e pesquisar arrays com PHP

Saiba mais...
Como conseguir emprego na área de tecnologia da informação
25/04/2021PHP

Como conseguir emprego na área de tecnologia da informação

Tudo o que você precisa saber para ir atrás de seu primeiro emprego

Saiba mais...

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