neurosys / file-merger
This package's canonical repository appears to be gone and the package has been frozen as a result.
Requires
- php: >=5.3.3
- symfony/process: *
Requires (Dev)
Suggests
- knplabs/knp-snappy: For image to PDF conversion
This package is not auto-updated.
Last update: 2019-06-27 13:40:58 UTC
README
File Merger is a PHP5 library allowing to merge multiple files into one. Currently it supports merging of PDFs and images into PDF.
Features
- merging of pdf and images into pdf.
Requirements
- pdftk command line tool (for PdfTkDriver)
- fileinfo extension (to accurately determine file mime type)
Installation using Composer
Add to your composer.json
:
{ "require" : { "neurosys/file-merger": "dev-master" } }
Install PDFtk to use default PdfTkDriver You can create your own driver as well.
Usage
Merge multiple pdf files into one pdf (using pdftk library)
<?php use NeuroSys\FileMerger\Merger; $driver = new PdfTkDriver("/usr/local/bin/pdftk"); $merger = new Merger($driver); $merger ->addFile('foo.pdf') ->addFile('baz.pdf') ->merge('output.pdf');
Merge multiple pdf and image files into one pdf
<?php use NeuroSys\FileMerger\Merger; use Knp\Snappy\Pdf; use NeuroSys\FileMerger\Transformer\ImageTransformer; $driver = new PdfTkDriver("/usr/local/bin/pdftk"); $merger = new Merger($driver); $snappy = new Pdf('/usr/local/bin/wkhtmltopdf'); $merger->addTransformer(new ImageTransformer($snappy)); $merger ->addFile('foo.pdf') ->addFile('bar.jpg') ->addFile('baz.pdf') ->merge('output.pdf');
MergerFactory usage
<?php use NeuroSys\FileMerger\Merger; use NeuroSys\FileMerger\MergerFactory; use Knp\Snappy\Pdf; use NeuroSys\FileMerger\Transformer\ImageTransformer; $factory = new MergerFactory(); $factory->addDriver(new PdfTkDriver("/usr/local/bin/pdftk")); $snappy = new Pdf('/usr/local/bin/wkhtmltopdf'); $factory->addTransformer(new ImageTransformer($snappy)); $merger = $factory->create('pdf'); // creates a pdf merger $merger ->addFiles(['foo.pdf', 'bar.jpg', 'baz.pdf']) ->merge('output.pdf');
Omit unsupported files
By default an exception is thrown if an unsupported file is to be merged. This can be changed by setting omitUnsupported flag
<?php $merger = $factory->create('pdf'); // creates a pdf merger $merger ->omitUnsupported() ->addFiles(['foo.odt', 'bar.jpg', 'baz.pdf']) ->merge('output.pdf');
In the example foo.odt will not be included in output.pdf You can check if merger supports a file by calling "supports" method
$merger->supports('foo.odt'); // returns false
Driver
Driver is used to merge multiple files of one format into another file of the same format
Transformer
Transformers are used to convert file into format supported by a driver.