PDF Auto Split

Drop a scanned batch PDF and let this tool find the document boundaries automatically — by blank separator pages or barcode dividers. Each document is saved as an individual PDF and bundled into a single ZIP. Nothing leaves your browser.

1. Choose your PDF

📄
Click to browse or drag a PDF here

2. Split method

Strict Loose

Higher = more pages will be treated as blank. Default (8) works well for most scanners.

3. Output

Output files will be named doc-001.pdf, doc-002.pdf, … unless barcode naming is used.

Preparing…
0
documents found

    How it works

    This tool runs entirely inside your browser using three open-source libraries. No file ever reaches a server.

    Step 1 – Render pages pdf.js renders each page of your PDF onto an off-screen canvas at 150 DPI. This produces pixel data that can be analysed.
    Step 2 – Detect separators Blank pages are found by sampling pixel luminance: if variance is below the threshold, the page is white/near-white. Barcode pages are scanned with ZXing-js, which supports 10+ symbologies.
    Step 3 – Build individual PDFs pdf-lib copies the page ranges between separators into separate PDF documents, preserving the original resolution and content.
    Step 4 – Download ZIP JSZip bundles all output PDFs into one ZIP file for a single click download. File names reflect barcode values when available.

    Tip for barcode splitting: Use a dedicated cover sheet with a large QR code or Code 128 barcode (min. 2 cm tall) between each scanned document. Many multifunction printers can print these separator sheets automatically.

    Frequently asked questions

    What is a scanned batch PDF and why would I split it?
    When you feed a stack of paper documents through an office scanner, most scanners produce a single PDF containing all pages in order. A batch PDF might contain 10 separate invoices, 20 patient intake forms, or 50 signed contracts — all concatenated. Splitting it turns that one file into 10, 20, or 50 individual PDFs, one per original document, which are much easier to file, name, and share.
    How do I set up blank-page separation?
    Configure your scanner to insert a blank sheet between each document before scanning, or scan each stack with a blank page placed at the top. Most document scanners and multifunction printers have a "separator sheet" option in their settings that does this automatically. The blank page will be detected and discarded (or optionally kept as a cover page).
    What barcode formats are supported?
    The ZXing-js library supports QR Code, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, PDF417, Data Matrix, ITF (Interleaved 2-of-5), Aztec, Codabar, MaxiCode, and RSS/GS1. For separator sheets, Code 128 or QR Code is recommended because they are reliably readable even after scanning and compression artefacts. Barcode height should be at least 1.5 cm on the printed page for reliable detection.
    Is my file uploaded anywhere?
    No. The PDF is loaded directly into your browser's memory using the JavaScript File API. All rendering, analysis, and PDF construction happens locally in your tab. Nothing is sent to any server. You can even use this tool offline once the page has loaded.
    My PDF has grey or slightly off-white pages — will blank detection still work?
    Yes. Use the sensitivity slider to adjust the threshold. "Strict" (low value) only catches pure-white pages; "Loose" (high value) catches any page that has very little ink — including grey-background or lightly printed separator sheets. If you're unsure, run a test split and check the log to see which pages were flagged as blank.
    How large a PDF can I split?
    Because everything runs in the browser, the practical limit is your device's RAM. A 500-page scanned PDF at 200 DPI typically uses 200–400 MB of memory during processing. Modern laptops handle this comfortably. For very large files (1,000+ pages), consider splitting the file first with a PDF editor and running this tool on each half, or use the "Both" mode which stops early on each barcode hit without rendering all pages unnecessarily.
    Can I name the output files automatically?
    Yes — when using barcode splitting, enable "Name output files using barcode value." The barcode text on each separator sheet becomes the file name (e.g. if the barcode reads INV-2024-0042, the output is INV-2024-0042.pdf). Otherwise, files are numbered sequentially using the prefix you specify (default: doc-001.pdf, doc-002.pdf, …).