This node.js library can merge multiple PDF documents, or parts of them, to one new PDF document. It's only dependency is pdfjs so it can run in any javascript-only environnement without any external dependencies.
This library is inspired by the PHP library PDFMerger and has a very similar API.
npm install --save pdf-merger-js
const PDFMerger = require('pdf-merger-js');
var merger = new PDFMerger();
(async () => {
merger.add('pdf1.pdf'); //merge all pages. parameter is the path to file and filename.
merger.add('pdf2.pdf', [2]); // merge only page 2
merger.add('pdf2.pdf', [1, 3]); // merge the pages 1 and 3
merger.add('pdf2.pdf', '4, 7, 8'); // merge the pages 4, 7 and 8
merger.add('pdf3.pdf', '1 to 2'); //merge pages 1 to 2
merger.add('pdf3.pdf', '3-4'); //merge pages 3 to 4
await merger.save('merged.pdf'); //save under given name and reset the internal document
})();
import PDFMerger from 'pdf-merger-js/browser';
import React, { useEffect, useState } from 'react';
// files: Array of PDF File or Blob objects
const Merger = (files) => {
const [mergedPdfUrl, setMergedPdfUrl] = useState();
useEffect(() => {
const render = async () => {
const merger = new PDFMerger();
for(const file of files) {
await merger.add(file)
}
const mergedPdf = await merger.saveAsBlob();
const url = URL.createObjectURL(mergedPdf);
return setMergedPdfUrl(url);
};
render().catch((err) => {
throw err;
});
() => setMergedPdfUrl({});
}, [files, setMergedPdfUrl]);
return !data ? (
<>Loading</>
) : (
<iframe
height={1000}
src={`${mergedPdfUrl}`}
title='pdf-viewer'
width='100%s'
></iframe>
);
};
- pdf-merge has a dependency on PDFtk.
- easy-pdf-merge has a dependency on the Apache PDFBox® - A Java PDF Library.
- pdfmerge has a dependency on python and PyPDF2.