PDF Tools April 6, 2026 · 6 min read

How to Merge PDF Files for Free: 6 Easy Methods

Combine multiple PDF documents into one file using free online tools, desktop apps, and Python scripts — no Adobe Acrobat Pro required.

How to Merge PDF Files for Free: 6 Easy Methods
AT

AltoUnlockPDF Team

PDF Tools Expert

Merging PDFs is one of the most common document tasks — combining a cover letter with a resume, assembling a multi-section report, or joining separately scanned pages into one file. All of these methods are completely free.


Method 1: AltoUnlockPDF Merge Tool (Free Online)

Our PDF Merge tool is the easiest option:

  1. Upload all PDF files you want to combine (up to 20 files)
  2. Drag to reorder them as needed
  3. Click Merge PDFs
  4. Download the combined file

No signup, no watermarks, no daily limits on standard files.


Method 2: Mac Preview (Built-In, No Software Needed)

Mac Preview is surprisingly powerful for PDF management:

  1. Open the first PDF in Preview
  2. Show Thumbnails panel: View → Thumbnails
  3. Drag the second PDF file from Finder into the thumbnails panel, at the position where you want to insert it
  4. Repeat for all additional PDFs
  5. File → Export as PDF to save the merged file

Important: Don’t use File → Save — this modifies the original file. Always use Export.

To reorder pages: drag thumbnails up or down in the sidebar.


Method 3: Windows — PDF Merger Apps

Windows doesn’t have a built-in PDF merge tool, but these free options work:

PDF24 Creator (free desktop app):

  1. Download PDF24 Creator
  2. Open the PDF24 Toolbox
  3. Use the Merge PDF tool
  4. Add files, set order, merge

PDFsam Basic (open source):

  1. Download PDFsam
  2. Select “Merge/Extract” operation
  3. Add PDF files, set page ranges
  4. Run
Multiple PDF files being merged into one document

Method 4: Python — pypdf

import pypdf

def merge_pdfs(input_files, output_file):
    """Merge multiple PDFs into a single file."""
    merger = pypdf.PdfMerger()
    
    for pdf in input_files:
        merger.append(pdf)
    
    merger.write(output_file)
    merger.close()
    print(f"Merged {len(input_files)} PDFs into {output_file}")

# Merge specific files in order
merge_pdfs(
    input_files=['cover_letter.pdf', 'resume.pdf', 'portfolio.pdf'],
    output_file='application.pdf'
)

# Merge all PDFs in a folder (alphabetical order)
import os
from pathlib import Path

pdf_folder = Path('./reports')
pdf_files = sorted(pdf_folder.glob('*.pdf'))
merge_pdfs([str(f) for f in pdf_files], 'combined_report.pdf')
pip install pypdf

Method 5: PDFtk (Command Line)

PDFtk is a classic command-line PDF toolkit:

# macOS
brew install pdftk-java

# Merge PDFs
pdftk file1.pdf file2.pdf file3.pdf cat output merged.pdf

# Merge specific pages
pdftk A=first.pdf B=second.pdf cat A1-3 B2-5 output subset.pdf

# Merge all PDFs in a folder
pdftk *.pdf cat output merged.pdf

PDFtk is especially useful when you need to select specific page ranges from each document before merging.


Method 6: Google Drive (No Software)

For quick one-off merges using Google Drive:

  1. Upload all PDFs to Google Drive
  2. Install the PDF Merge add-on from Google Workspace Marketplace
  3. Select multiple PDFs → right-click → Merge PDFs

Or: Open both PDFs in Google Docs, then File → Download as PDF.


Merging PDFs with Different Page Sizes

When combining PDFs with mixed page sizes (A4 and Letter, portrait and landscape):

Our tool and Preview normalize page sizes automatically. With Ghostscript:

# Normalize all to A4 during merge
gs -dNOPAUSE -dBATCH -sDEVICE=pdfwrite \
   -dCompatibilityLevel=1.4 \
   -sPAPERSIZE=a4 -dFIXEDMEDIA \
   -sOutputFile=merged.pdf \
   file1.pdf file2.pdf file3.pdf
PDF merge tool organizing multiple documents

Some methods strip bookmarks (table of contents entries) and hyperlinks during merge. To preserve them:

  • pypdf preserves internal links by default
  • PDFtk preserves bookmarks
  • Some online tools strip everything — test with a sample before processing important documents

For documents with complex bookmarks (like merged reports), Python’s pypdf gives you programmatic control:

import pypdf

merger = pypdf.PdfMerger()
# Append with bookmark for each section
merger.append('chapter1.pdf', bookmark='Chapter 1: Introduction')
merger.append('chapter2.pdf', bookmark='Chapter 2: Methods')
merger.append('chapter3.pdf', bookmark='Chapter 3: Results')
merger.write('full_report.pdf')

The pypdf documentation covers all these options in detail.

Related Articles