PDF Merge Tool Guide
PDF Merging Basics
PDF merging combines multiple PDF files into a single file, a very common operation in office work and document management. Common use cases include: combining multiple reports into one complete document, merging multi-page scanned files, and integrating attachments with main documents. The core of PDF merging is maintaining the quality of original formatting, fonts, and images.
PDF files consist of page description streams, and merging actually combines multiple PDF page description streams in a specified order. This requires tools to correctly handle page sizes, font embedding, image compression, bookmarks, annotations, and other elements. Simple merging tools may lose this metadata, so choosing a reliable tool is important.
Command-Line Tool Usage
# Using Ghostscript to merge PDFs
gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite \
-sOutputFile=output.pdf input1.pdf input2.pdf input3.pdf
# Using pdfunite (Poppler toolkit)
pdfunite file1.pdf file2.pdf file3.pdf merged.pdf
# Using pdftk (PDF Toolkit)
pdftk file1.pdf file2.pdf cat output merged.pdf
# Merge specific pages
pdftk A=file1.pdf B=file2.pdf cat A1-3 B2-4 output merged.pdf
# Add bookmarks
pdftk file.pdf dump_data > bookmarks.txt
pdftk file.pdf update_info bookmarks.txt output file_with_bookmarks.pdf
Programming PDF Merging
// Node.js using pdf-lib library
const { PDFDocument } = require('pdf-lib');
const fs = require('fs');
async function mergePDFs(inputFiles, outputFile) {
const mergedPdf = await PDFDocument.create();
for (const file of inputFiles) {
const pdfBytes = fs.readFileSync(file);
const pdf = await PDFDocument.load(pdfBytes);
const copiedPages = await mergedPdf.copyPages(pdf, pdf.getPageIndices());
copiedPages.forEach(page => mergedPdf.addPage(page));
}
const mergedPdfBytes = await mergedPdf.save();
fs.writeFileSync(outputFile, mergedPdfBytes);
}
// Usage example
mergePDFs(
['doc1.pdf', 'doc2.pdf', 'doc3.pdf'],
'merged.pdf'
).then(() => console.log('Merge complete'));
Recommended Tools
pdftk is a comprehensive command-line PDF toolkit. pdf-lib is a JavaScript PDF manipulation library with pure JavaScript implementation. Adobe Acrobat is professional PDF editing software. ILovePDF is an online PDF tool supporting merge functionality.