it-devgroup/laravel-pdf-merger

Package for Laravel that merges multiple PDFs into one.

1.0.1 2021-04-20 08:20 UTC

This package is auto-updated.

Last update: 2024-12-22 22:25:47 UTC


README

PDF merger for Laravel inspired by another package, created for personal use. Tested with Laravel 5.6.

Advantages

  • Works with PHP 7.4
  • Works with Laravel 8

Installation

  composer require it-devgroup/laravel-pdf-merger

Configuration

Make the following changes to the main configuration file located at config/app.php

'providers' => [
   ...
   ItDevgroup\LaravelPDFMerger\Providers\PDFMergerServiceProvider::class
],

'aliases' => [
   ...
   'PDFMerger' => ItDevgroup\LaravelPDFMerger\Facades\PDFMergerFacade::class
]

When merging PDFs versions above 1.4 or PDF strings, a temporary PDF will be created during the process and stored in storage/tmp directory, therefore you may need to create it beforehand. Also, note that this package requires Ghostscript installed on the server in order to functiona properly with PDF versions 1.5+. Install Guide

Usage

You can add PDFs for merging, by specifying a file path of PDF with addPathToPDF method, or adding PDF file as string with addPDFString method. The second argument of both methods is array of selected pages ('all' for all pages) and the third argument is PDFs orientation (portrait or landscape).

$merger->addPathToPDF('/path/to/pdf', 'all', 'P');
$merger->addPDFString(file_get_contents('path/to/pdf'), ['1', '2'], 'L')

You can set a merged PDF name by using setFileName method.

$merger->setFileName('merger.pdf');

In the end, finnish process with merge or duplexMerge method and use one of the output options for the merged PDF. The difference bwetween two methods is, that duplexMerge adds blank page after each merged PDF, if it has odd number of pages.

Available output options are:

  • inline()
  • download()
  • string()
  • save('path/to/merged.pdf')
$merger->merge();
$merger->inline();

Example usage

$merger = \PDFMerger::init();
$merger->addPathToPDF(base_path('/vendor/it-devgroup/laravel-pdf-merger/examples/one.pdf'), [2], 'P');
$merger->addPDFString(file_get_contents(base_path('/vendor/grofgraf/laravel-pdf-merger/examples/two.pdf')), 'all', 'L');
$merger->merge();
$merger->save(base_path('/public/pdfs/merged.pdf'));