Extract or split PDF pages by page range
The page range supports comma-separated segments, each either a single page number or a dash-connected range — e.g. "1-3,5,8-10" extracts pages 1–3, page 5, and pages 8–10. Everything is processed locally in your browser; your file is never uploaded.
This tool does one narrow job: pick pages out of a PDF by number and download them as a new PDF. It suits the case where you want to send someone only a few pages of a long contract, report or scan. It produces a single file per run, so it will not cut a document into many pieces in one go; to split by chapter you run it once per range. It also cannot reorder pages, repeat a page or rotate anything.
The input is split on ASCII commas. Each piece is either one page number or two numbers joined by a hyphen. Take a 10-page file: 1-3,5,8-10 gives pages 1, 2, 3, 5, 8, 9 and 10. Typing 5,1,3 still yields 1, 3, 5, because the result is de-duplicated and sorted ascending. 10-8 is treated as 8-10, and 8-20 is clipped to 8-10 with the out-of-range part silently dropped. I ran the same parsing logic on a 10-page sample with these inputs and the results matched.
Compare against the page count the tool shows, then look for full-width commas, en dashes or other unusual characters in your input. Those are dropped silently, so the output comes out shorter than intended.
No. Each click exports one file. To split into chapters, enter each chapter's range in turn and export each time. Every download uses the same name, extracted-result.pdf, so rename them as you go.
A corrupted file, something that is not really a PDF, and a password-protected PDF all trigger that same message. If you know the password, remove the protection in another program first.
No. Output follows the original page order, ascending, and a page listed twice appears once. Use the site's PDF Page Reorder tool if you need a different order.
No. The code makes no upload requests; reading, extracting and building the file all happen in your browser. The pdf-lib script module is loaded the first time you use the tool, and it is served with the site itself rather than fetched from a third-party server.