alternative-pdf-combine

Alternative approach to combine pdf's (doesn't support windows, requires poppler on linux)

Usage no npm install needed!

<script type="module">
  import alternativePdfCombine from 'https://cdn.skypack.dev/alternative-pdf-combine';
</script>

README

alternative-pdf-combine

There are various tools in the npm that allow for combining pdf's this tool is limited to Mac & Linux but it should work on macs out-of-the-box and on linux by using popplers pdfunite`. This tool is by no means well tested use on own risk!

As a command line tool

Install it using npm i alternative-pdf-combine -g and then run

$ Usage: alternative-pdf-combine out.pdf in1.pdf ... inx.pdf

To enable a debug output you can set the environment variable DEBUG_ALTERNATIVE_PDF_COMBINE=true.

As a JavaScript package

After installing the package with npm i alternative-pdf-combine you can use it like this.


var combinePdfs = require('alternative-pdf-combine')
combinePdfs([
    fs.readFileSync('pdf1.pdf'),
    {file: 'pdf2.pdf'}, // will automatically call fs.readFileSync
    new Buffer('...'),  // will use this buffer
    '...', // will be converted to Buffer using new Buffer(txt)
    {text: '...', encoding: 'utf8'} // will convert the  text to a buffer using new Buffer(obj.text, obj.encoding)
], function (err, combinedBuffer) {
    if (err) {
        console.log(err)
        process.exit(1)
    }
    fs.writeFile('test_out.pdf', combinedBuffer, function (err) {
        if (err) {
            console.log(err)
            process.exit(1)
        }
        console.log(out)
    })
})

Mac & PDF Unite

By default, on Mac, it will try to use mac's pdf combination. But it will use pdfunite if installed on a mac since its way faster and creates smaller files. You can install pdfunite on mac using homebrew: brew install poppler

If you wish to always use Mac's pdf combination solution set the environment variable: ALTERNATIVE_PDF_COMBINE_OVERRIDE_PDFUNITE=true

Contribution

Contributions and improvements welcome!