neurosys/file-merger

This package's canonical repository appears to be gone and the package has been frozen as a result.

dev-master 2016-01-26 12:23 UTC

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.