Send Only Some Pages of a PDF: Extract Pages, Remove Pages, and What Stays Behind
To send only some pages of a PDF, list the pages to keep in Extract Pages or the pages to drop in Remove Pages. Page text is removed, but bookmark titles and the document title can stay in the file.
Extract Pages turns a 12-page PDF into a new PDF that holds only the pages you list, such as 1,3,5-8. Remove Pages does the opposite: you list what to drop. Both copy the original pages instead of redrawing them, so text stays selectable and the file does not get blurry. One limit matters if the dropped pages were sensitive: the page content goes, but bookmark titles and the document title can stay in the new file.
Pick the tool by what you already know
If you know the pages to keep, use Extract Pages. If you know the pages to drop, use Remove Pages. The difference shows up in the order of the result:
- Extract Pages writes pages in the order you type them. Typing
5,1,3gives page 5, then page 1, then page 3. A page typed twice appears once. - Remove Pages keeps the remaining pages in their original order.
Page numbers are the ones a viewer shows, starting at 1. The same list syntax works in both tools: single pages (4), ranges (5-8), comma lists (1,3,5-8), the word all, and expressions such as 2n+1. The expression counts n from 1, so 2n+1 gives pages 3, 5, 7 and so on; page 1 is not included, so type 1,2n+1 if you want it.
A worked example: sending a landlord part of a lease
The input is a 12-page letter-size lease. Each page carries its own number as text ("Lease agreement - page 3 of 12"), so the result is easy to check. The landlord needs pages 1, 3 and 5 to 8, not the appendix. In the browser you upload the file, type 1,3,5-8 and download the result. From a script, the same operation is:
curl -s -o pages.pdf \
-F [email protected] \
-F pageNumbers="1,3,5-8" \
https://pdf123.xyz/api/v1/general/rearrange-pages
The website tool sends the list to that endpoint and leaves customMode unset, which means "use my list in my order". These are results from one run against a local server on 2026-10-04, using a generated test file; the numbers are page counts and the page labels extracted from the output:
| Input to the tool | Tool | Pages in the result |
|---|---|---|
1,3,5-8 |
Extract Pages | 6 pages: 1, 3, 5, 6, 7, 8 |
5,1,3,1 |
Extract Pages | 3 pages: 5, 1, 3 |
2n+1 |
Extract Pages | 5 pages: 3, 5, 7, 9, 11 |
10-15 |
Extract Pages | 3 pages: 10, 11, 12 |
2-4,9 |
Remove Pages | 8 pages: 1, 5, 6, 7, 8, 10, 11, 12 |
| empty (API only; the web form requires a value) | Remove Pages | all 12 pages, the original file back |
The downloaded file keeps the name of the file you uploaded, so rename it before sending, or you will have two lease.pdf files on disk.
Three inputs that fail, and what the error says
A page that does not exist is an error, not a silent skip. Asking for page 13 in the 12-page file returns a 400 (page_out_of_range) with Page 13 does not exist; the document has 12 pages. Page 0 is rejected the same way. Text that is not a page list, such as abc, returns 400 with invalid_page_selection and the hint to use values like 1,3,5-8 or all. Both tools behave the same way here, so a typo cannot produce a plausible but wrong file.
Two edge cases are less obvious. A range that starts inside the document but ends past it is clipped: 10-15 on 12 pages gave pages 10 to 12. And Remove Pages refuses to remove everything: 1-12 returns 400 (would remove every page, which leaves nothing to return), because a PDF with no pages cannot exist.
A password-protected file needs its password on the web page. If you call the API directly, run Unlock first.
What stays behind: removing a page is not redacting it
Extraction drops the page objects, and with them the text and images of the pages you did not list. In the test, the extracted file contained no text from the dropped pages, and its raw bytes held no trace of that text either. What extraction does not drop is everything else that refers to those pages.
For this check the lease had a document title ("Lease - Unit 4B, J. Rivera") and two bookmarks, "Signature page" on page 1 and "Tenant SSN appendix" on page 12. After Extract Pages kept pages 1 and 2, the file had 2 pages, and the bookmark panel of a viewer still listed both titles; the second one now pointed nowhere. The title and author were still in the document properties. Remove Pages on page 12 left the same two bookmarks.
Sanitize with the metadata options on clears the document information and XMP metadata, and the document properties came back empty after it. The web form turns those options on by default; an API call has to send removeMetadata=true itself. Sanitize does not touch bookmarks: both titles were still there. No web tool edits bookmarks. The API operation general/edit-table-of-contents replaces them from a JSON list, and it needs at least one entry, so it cannot just empty the list. In the test it also left the old title text inside the file as an unreferenced object, invisible in a viewer but still readable in the raw bytes. Do not count on it to hide a bookmark title.
So when dropped pages were sensitive, open the result, look at the bookmark panel and the document properties, and send only if nothing in them gives the content away. If a bookmark title itself is the secret, this route cannot remove it. If a visible word on a kept page must go, that is a job for Auto Redact, covered in Before You Share.
Costs and limits
- Both tools work on one PDF at a time and produce one PDF. Cutting a file into several parts is a job for Split.
- The result is a new file and your original is untouched. Keep the original, because the new file cannot give the dropped pages back.
- A file that does not open at all needs Repair first; see File Won't Open.