UtilityEXE
PDF Page Extractor icon

PDF Page Extractor

Extract the pages you need from any PDF, entirely offline

Free Open source Portable Windows 10 & 11
Download v1.0.0 View source on GitHub

34.6 MB · EXE · 4 downloads
Updated 20 Aug 2026

Screenshots

PDF Page Extractor

What it does

Split every N pages

Chop a document into equal pieces. Presets for 1 through 10, or any custom value up to 10,000. A 30-page file at 5 pages each gives you 6 files.

Custom page selection

Pull out exactly the pages you list. Type 1,5-10,22-30 and get one combined PDF, or one file per range with a single checkbox.

Flexible range syntax

Spaces are ignored, and the characters -, .. and : plus the word "to" all mean range. Bad input gets a quiet hint, not an error dialog.

Named selections

Write odd, even, all, first, last, first 5, last 5, 10-last, -8, 12-, every 3, or "every 2nd page" in plain language.

Forgiving parsing

Out-of-range numbers are clamped and flagged, duplicates collapse, and a reversed range like 20-5 is read the sensible way round.

One-click selections

All, None, Invert, Odd, Even, Every 2, Every 3, Every 5, First, Last, Current and + Current, without typing anything.

Two-way sync

Type an expression and the thumbnails light up. Click thumbnails and the expression rewrites itself to match.

Click selection

Click a thumbnail for one page, Ctrl-click to add or remove, Shift-click for a range, double-click to jump the large preview there.

No quality loss

Pages are copied rather than re-rendered. There is no quality setting because there is nothing to trade away.

Text stays searchable

Selectable text remains selectable, vectors stay vector, and images keep their exact bytes.

Bookmarks remapped

The outline is rebuilt against the new page numbers, dead entries removed and the tree re-levelled, so the table of contents still works.

Metadata preserved

Title, author, subject, keywords, creator, producer and both timestamps carry across to every output file.

Batch processing

Drop unlimited files or entire folders, collected recursively, and apply one rule to all of them.

Per-file page awareness

Each document is parsed against its own page count, so "last" means the last page of that file rather than a fixed number that misfires on shorter documents.

Configurable threads

Run 1, 2, 4, 6 or 8 workers depending on how much of the machine you want to give it.

Pause, resume, cancel

Stop a batch at any point. Cancelling never leaves a half-written file behind.

Per-file status

Every item in the queue shows Queued, Running, Completed, Failed, Cancelled, Skipped or Needs password.

Encrypted PDF support

Password prompt with show/hide and a five-attempt limit, in both single and batch mode.

Session-only passwords

Remember for this session holds a password in memory and never writes it to disk, settings or logs.

Password re-prompting

In a batch run, protected files are collected and asked about at the end rather than silently failing mid-run.

Lazy thumbnails

Rendered in the background on demand, so a 5000-page file opens instantly instead of after a minute of grinding.

Zoom 20 to 600 percent

With a live percentage readout, plus fit-width and fit-page.

Responsive rendering

Spin the zoom control and stale frames are discarded rather than queued up and painted late.

View rotation

Rotate the preview to read a landscape page without altering the file.

Page geometry

Dimensions shown in millimetres alongside the page's own rotation value.

Naming templates

Base name, prefix, suffix, auto-numbering and configurable padding width.

Filename placeholders

Use {name}, {n}, {page}, {start}, {end}, {pages}, {count}, {date} and {time} inside the base name.

Live filename preview

See the first three real output names and a count of the rest before you commit to anything.

Filename sanitising

Illegal Windows characters and reserved names like CON, PRN and NUL are handled automatically.

Duplicate handling

Auto-rename to "(1)", overwrite, or skip, chosen once and remembered.

Rotate extracted pages

Apply 0, 90, 180 or 270 degrees to the output.

Remove blank pages

Detected by ink coverage rather than file size, so a large but empty scan is still caught.

Merge results

Combine everything a run produces into a single PDF as an optional final step.

Fast-save mode

Skips deflate and deep garbage collection for speed. Turn it off when file size matters more.

Run reports

Export a record of any run as TXT, CSV or JSON with pages extracted, file count, time taken, location and status.

Drag and drop

Drop a single file to open it, several to fill the batch queue, or a folder to collect every PDF inside it recursively.

Recent files

A list on the Home screen with file sizes and a Clear action.

Open with support

Pass a file path on the command line, which is what makes the Windows Open with association work.

Reload from disk

Re-read the current file while keeping your page selection, for when the source changed underneath you.

Load confirmation

A short dialog states page count, file size, PDF version and encryption status before you start.

Entirely offline

No network calls of any kind, at any point. It works with the cable pulled out.

No account or telemetry

No registration, no analytics, no tracking. Nothing is uploaded, so nothing needs deleting afterwards.

Corporate-safe

Runs in air-gapped and restricted environments where upload-based tools are blocked outright.

Dark and light themes

Switchable at any time, applied to every dialog rather than just the main window.

Pinned extract button

Sits at the top of the options column with a live "16 pages to 4 files" summary, so it never scrolls out of reach.

Detailed progress

A bar with percentage, elapsed time, estimated time remaining, current page and a Cancel that actually works.

Offline help

A user guide, full syntax reference, shortcut table and troubleshooting section built into the application.

Keyboard shortcuts

Ctrl+O to open, Ctrl+E to extract, Ctrl+A select all, Ctrl+I invert, Ctrl+T theme, arrows to page, F1 for help.

Small-screen scaling

The window is clamped to fit the display, so nothing lands underneath the taskbar.

Settings persistence

Theme, window size, folders, naming preferences, split method, thread count and recent files all survive a restart.

Atomic settings writes

A crash mid-save cannot corrupt your configuration, and Reset all settings restores the defaults.

Isolated failures

One unreadable file in a batch of 400 does not stop the other 399.

Human error messages

"The file is open in another program", not a stack trace.

Rotating logs

Five files of 1 MB in %APPDATA%, reachable from Help then Open log folder.

Crash guard

A top-level handler writes the traceback to the log instead of vanishing the window.

Thread-safe interface

Background results travel through a queue drained by the main thread, removing an entire family of intermittent crashes.

Tested at scale

Verified against 500 MB and 5000-page documents, with no built-in file size limit.

Automated test coverage

60 engine assertions, 42 interface checks and 20 end-to-end runs.

Contiguous run optimisation

Selecting 1-500 issues one operation rather than 500, so large ranges stay fast.

Single portable executable

Roughly 45 to 65 MB, no installer, no admin rights, no Python. Runs from a USB stick.

Most PDF splitters ask you to upload your document to a server. For an invoice batch, a signed contract or a medical record, that is not a small ask — and for anyone on a corporate network where uploads are blocked outright, it is not even possible.

PDF Page Extractor does the work on your machine. It makes no network calls at any point. There is no account, no registration, no telemetry and no analytics. Nothing is uploaded, so nothing needs deleting afterwards. It runs in air-gapped environments with the network cable pulled out.

Two ways to split, and they do not overlap

Split every N pages chops a whole document into equal pieces. Load a file, pick a number, extract. A 30-page file at 5 pages each gives you 6 files. At 4 pages each you get 7 files, with 2 pages in the last one. Presets cover 1 through 10, and a custom box takes anything up to 10,000.

Custom pages pulls out exactly what you list. Type 1,5-10,22-30 and you get one 16-page PDF. Tick Save each range as a separate PDF and the same expression gives you three separate files — which is how you split a book into chapters in a single pass.

You pick the method first, and only that method's fields appear. Choosing one never leaves the other quietly influencing the result.

A page range syntax that does not punish you

Spaces are ignored. The characters -, .., : and the word to all mean "range". Beyond plain numbers you can write odd, even, all, first, last, first 5, last 5, 10-last, -8 for pages 1 to 8, 12- for page 12 onward, every 3, or every 2nd page written out naturally.

Out-of-range numbers are clamped and flagged rather than rejected. Duplicates collapse. A reversed range like 20-5 is read the sensible way round. Invalid input produces a quiet hint under the box, not an error dialog you have to dismiss.

If you would rather click than type, one-click buttons cover All, None, Invert, Odd, Even, Every 2, Every 3, Every 5, First, Last, Current and + Current. The expression box and the thumbnail strip stay in sync in both directions — type 1,5-10 and the thumbnails light up; Ctrl-click a few thumbnails and the expression rewrites itself to match.

Nothing is re-rendered, so nothing degrades

There is no quality setting in this application, because there is nothing to trade away. Pages are copied, not redrawn. Original resolution is preserved. Text stays selectable and searchable. Vectors stay vector. Images keep their exact bytes. Fonts and embedded resources carry across. Page rotation is preserved, and so is the document metadata — title, author, subject, keywords, creator, producer, and both timestamps.

Bookmarks get particular care. The outline is remapped to the new page numbers, entries pointing at pages you did not select are removed, and the remaining tree is re-levelled. You do not end up with a table of contents full of dead links.

Batch that understands each file separately

Drop individual PDFs or entire folders, collected recursively. One rule applies to every file, but each document is parsed against its own page count. That means last resolves to the last page of that file, and Split every N runs to each file's own end — instead of a fixed range that would misfire the moment it hit a shorter document.

Worker threads are configurable at 1, 2, 4, 6 or 8. You can pause, resume and cancel a run, and cancelling never leaves a half-written file behind. Each file shows its own status in the queue: Queued, Running, Completed, Failed, Cancelled, Skipped or Needs password. Password-protected files are collected and re-prompted at the end rather than silently failing in the middle of the run.

A typical use: pull page 1 from 300 scanned invoices and merge the lot into one summary document.

Encrypted files, handled properly

Password-protected PDFs open with a prompt that has show/hide and a five-attempt limit. Remember for this session keeps the password in memory only — it is never written to disk, not in settings, not in logs.

Preview built for documents that are actually large

Thumbnails render lazily in the background, so a 5000-page file opens instantly rather than after a minute of grinding. The large preview zooms from 20% to 600% with a live percentage, plus fit-width and fit-page. You can rotate the view without touching the file, and page geometry is shown in millimetres alongside the page's own rotation. Spin the zoom control quickly and stale frames are discarded rather than queued up and painted late.

File names you can check before committing

Set a base name, prefix, suffix, auto-numbering and padding width. Placeholders work inside the base name: {name}, {n}, {page}, {start}, {end}, {pages}, {count}, {date} and {time}. Writing {name}_p{page} produces report_p7.pdf.

A live preview under the naming card shows the first three real file names plus a count of the rest, so you see what you are about to create. Illegal Windows characters and reserved names like CON, PRN and NUL are sanitised automatically.

Output options

Pick an output folder, which is remembered between sessions. Choose how duplicates are handled — auto-rename to … (1).pdf, overwrite, or skip. Optionally open the folder when the run finishes. You can rotate the extracted pages by 0, 90, 180 or 270 degrees, remove blank pages (detected by ink coverage, not file size), and merge the results into a single PDF. Fast-save mode skips deflate and deep garbage collection when speed matters more than file size.

Every run can be exported as a report in TXT, CSV or JSON, listing the source file, pages extracted, number of output files, time taken, output location, status and any error.

Built to not fall over

Errors are treated as values, not crashes. One unreadable file in a batch of 400 does not stop the other 399. Error messages are written for people — "the file is open in another program", not a stack trace. A rotating log file (5 × 1 MB) sits in %APPDATA%\PDFPageExtractor\logs\ and is reachable from Help → Open log folder.

Background workers never touch the interface directly. Every result travels through a queue drained by the main thread, which eliminates an entire family of intermittent crashes that plague Tkinter applications. Settings are written atomically, so a crash mid-save cannot corrupt them.

The build is covered by three automated suites: 60 engine assertions, 42 interface checks and 20 end-to-end runs.

What it doesn't do

This is version 1.0, and the list above is an exact description rather than a wish list. The following are not implemented:

  • No OCR. Scanned PDFs are split page by page like any other file, but the text inside images is not read or made searchable.
  • No bookmark-driven extraction. You cannot pick "Chapter 3" from the outline and have it work out the page range. Bookmarks are preserved and remapped in the output, but you select pages by number.
  • No automatic chapter detection.
  • No duplicate-page detection.
  • No scripting CLI. The command line accepts a file path to open (PDFPageExtractor.exe "report.pdf", which is what makes Windows Open with work), but there is no way to run an extraction unattended from a script or scheduled task.
  • No right-click context-menu integration in Windows Explorer.
  • No hot-folder monitoring.
  • No page reordering before extraction. Pages come out in document order.
  • No PDF page-label support — if a document numbers its front matter i, ii, iii, you address those pages by their physical position.
  • English only. The interface is translation-ready but no translations ship yet.

It also does not merge arbitrary PDFs together as a primary function, compress files, edit page content, fill forms or sign documents. It extracts and splits.

Requirements and installation

Windows 10 or 11. No installer, no admin rights and no Python on the target machine — the runtime is bundled into a single executable of roughly 45–65 MB. Download the zip, extract it anywhere, and double-click. It runs from a USB stick.

Windows SmartScreen may warn on first launch because this build is not yet code-signed. Choose More info → Run anyway. The version resource is embedded and the build is Authenticode-ready, so the warning will disappear once a certificate is in place.

Settings live in %APPDATA%\PDFPageExtractor\settings.json and remember your theme, window size, last folders, naming preferences, split method, duplicate policy, thread count and recent files. A Reset all settings action restores the defaults.

A note on licensing

The extraction engine is built on PyMuPDF, which is AGPL-licensed. The application is free to download and use. If you intend to redistribute it commercially in closed-source form, you would need a commercial licence from Artifex Software. This is an engineering note rather than legal advice.

Installing it

  1. Download the zip from the download button above — PDF.Page.Extractor.v1.0.0.zip, roughly 36 MB.
  2. Right-click the downloaded zip and choose Extract All, then pick a location — Desktop, a tools folder, or a USB stick. Any folder works.
  3. Do not run the exe from inside the zip. Windows would launch it from a temporary location and your settings would not persist.
  4. Open the extracted folder and double-click PDFPageExtractor.exe. There is no installer and no setup wizard, so this is the whole installation.
  5. If Windows SmartScreen shows a "Windows protected your PC" box, click More info, then Run anyway. This appears because the build is not yet code-signed, not because anything is wrong with the file.
  6. The application opens on the Home screen. Drag a PDF onto the window or press Ctrl+O to begin.
  7. To uninstall, delete the folder. Nothing is written to the registry. To clear settings and logs as well, delete %APPDATA%\PDFPageExtractor.

Version history

v1.0.0 Current
4 Aug 2026 · 34.6 MB

Questions about PDF Page Extractor

Q: Are my PDFs uploaded anywhere?
A: No. The application makes no network calls of any kind, at any point. There is no account, no registration, no telemetry and no analytics. You can disconnect from the internet entirely and it will work exactly the same. Because nothing is uploaded, there is nothing to delete afterwards — which is the practical difference between this and a browser-based splitter when the document is an invoice, a contract or a medical record.
Q: Will splitting reduce the quality of my PDF?
A: No, and there is no quality setting because there is nothing to trade away. Pages are copied rather than re-rendered. Original resolution is preserved, text stays selectable and searchable, vectors stay vector, images keep their exact bytes, and fonts and embedded resources carry across intact.
Q: What happens to bookmarks and metadata?
A: Both are preserved. Metadata — title, author, subject, keywords, creator, producer and both timestamps — carries across to the output. Bookmarks are remapped to the new page numbers: entries pointing at pages you did not select are removed and the remaining tree is re-levelled, so you get a working table of contents rather than a broken one.
Q: Can it handle password-protected PDFs?
A: Yes, in both single-file and batch mode. You get a password prompt with show/hide and a five-attempt limit. Remember for this session keeps the password in memory only — it is never written to disk, settings or logs. In a batch run, protected files are collected and re-prompted at the end rather than silently failing partway through.
Q: How large a file can it handle?
A: There is no built-in limit. It has been tested against 500 MB and 5000-page documents. Thumbnails render lazily in the background, so a very large file opens instantly instead of stalling, and contiguous page runs are collapsed into a single operation — selecting pages 1 to 500 issues one call, not five hundred.
Q: What is the difference between the two split methods?
A: Split every N pages divides the whole document into equal chunks, and needs no page picking — load a file, choose a number, extract. Custom pages pulls out exactly the pages you list using the expression syntax. They are alternatives rather than layers: you pick one, only that method's fields appear, and the other never quietly influences the result.
Q: How do I split a book into separate chapters?
A: Use Custom pages, list each chapter as its own range separated by commas — for example 1-24, 25-51, 52-80 — and tick Save each range as a separate PDF. You get one file per range in a single pass. Note that you have to know the page numbers; version 1.0 cannot read chapter boundaries from the bookmark outline for you.
Q: Does it do OCR on scanned documents?
A: No. Scanned PDFs split page by page exactly like any other file, and the images come out untouched at their original quality. But the text inside those images is not read, so the output will not be searchable if the input was not. If you need searchable text from a scan, run OCR with a separate tool first, then split the result.
Q: Can I run it from a script or scheduled task?
A: Not in version 1.0. The command line accepts a file path to open — PDFPageExtractor.exe "report.pdf" — which is what makes the Windows Open with association work, but there is no way to specify a page range and run an extraction unattended. For repeated manual jobs, the batch tab with saved settings is the closest equivalent.
Q: Does it need installing, and does it need admin rights?
A: Neither. Download the zip, extract it wherever you like, and double-click the executable. There is no installer, no admin rights required and no Python needed on the machine — the runtime is bundled. It runs from a USB stick, which makes it usable on locked-down work machines.
Q: Windows says the file is unrecognised. Is something wrong?
A: That is Windows SmartScreen, and it appears because this build is not yet code-signed rather than because anything is wrong with the file. Choose More info, then Run anyway. The version resource is embedded and the build is Authenticode-ready, so the warning will go once a certificate is in place. You can verify the download against the SHA-256 checksum published on the GitHub release page.
Q: What does batch mode actually do differently from running files one at a time?
A: Beyond speed, it applies one rule across every file while parsing each document against its own page count. So "last" resolves to the last page of that particular file, and Split every N runs to each file's own end — instead of a fixed range that would misfire the moment it reached a shorter document. Add configurable worker threads, pause and resume, per-file status, and an exportable summary report at the end.
Q: What is not included in version 1.0?
A: No OCR, no bookmark-driven extraction, no automatic chapter detection, no duplicate-page detection, no scripting CLI, no right-click context-menu integration, no hot-folder monitoring, no page reordering before extraction and no PDF page-label support. The interface is English only, though it is translation-ready. It also does not compress files, edit page content, fill forms or sign documents.
Q: Is it really free, and what is the licensing situation?
A: It is free to download and use. The extraction engine is built on PyMuPDF, which is AGPL-licensed — that matters only if you intend to redistribute the application commercially in closed-source form, which would require a commercial licence from Artifex Software. For ordinary use, personal or at work, there is nothing to buy and nothing to sign.

Similar tools

Other utilities people use alongside PDF Page Extractor.