Five tools on one page, and what each does to the file
Merge copies the pages of every input document into one new PDF, in the order shown. Split extracts the pages you name into a new document, or writes one single-page file per page. Rotate changes the rotation entry of the pages you choose. Images → PDF embeds pictures, one per page. PDF → Images renders pages to PNG.
The first four run on pdf-lib, which rewrites the document structure without touching page content: text stays text, vector graphics stay vector, embedded images are copied byte-for-byte. Only PDF → Images rasterises, and it uses pdf.js, loaded separately so that a failure there cannot break the other four tabs.
Switching tabs clears the file list on purpose. Merge wants several PDFs, Split and Rotate work on one, and Images → PDF wants pictures rather than documents, so carrying a list across would mean silently ignoring half of it.
Page ranges: the syntax Split and Rotate accept
Ranges are 1-based and comma-separated: 1-3, 5, 8- on a 10-page file selects pages 1, 2, 3, 5, 8, 9 and 10. An open end means “to the last page”, and an open start (-4) means “from page 1”. Spaces anywhere are ignored.
Duplicates are removed and the result is always sorted, so 5, 1-3, 5 gives pages 1, 2, 3, 5 exactly once. That also means ranges select pages — they do not reorder them: typing 3-4, 1-2 extracts pages 1 to 4 in document order, not the swapped order you typed.
Mistakes are named rather than swallowed: 9-3 is reported as a backwards range, 25 on a 10-page file as out of range, and 3–5 typed with an en dash as not a number. A live count under the field (“7 pages”) updates as you type, so you can confirm the selection before running anything.
Merging: order, page sizes and what is preserved
The list order is the page order. Move a file with ↑ ↓, or use “Sort by name” — which is what you want for scans named page-01.pdf … page-12.pdf — and “Reverse” for a batch that came off a scanner back-to-front. At least two files are required; a single file just comes back unchanged, so the button says so instead of pretending to work.
Page size is kept per page, not normalised. Merging an A4 report with a Letter invoice gives a document whose pages are genuinely different sizes — correct behaviour, though it prints with different margins. Convert to a single size in the source application first if that matters.
Page content, links and annotations travel with the copied pages. Document-level structures do not: bookmarks/outline, form field values, attachments and digital signatures are dropped, because they live outside the page objects and cannot be reassembled reliably. If a PDF is signed, merging it invalidates the signature — that is true of every merge tool, including desktop ones.
Rotating: why 90° twice equals 180°
Rotation is added to whatever the page already had, then normalised to 0, 90, 180 or 270. A page already at 90° rotated by another 90° becomes 180°, and 270° + 180° wraps to 90°. Rotating by 90° four times returns the page exactly where it started, with no accumulated error, because the value is an angle in the page dictionary rather than a transformation of the content.
That is also why rotating is instant on a 500-page file and why it never degrades anything: no pixels are moved, no text is re-flowed. The viewer simply displays the page turned.
Apply it to all pages or to a range. The usual case is a scan where a few landscape pages came out sideways: type those page numbers, choose 90° or 270°, and leave the rest alone. If a page still looks wrong in one viewer but right in another, the file has conflicting rotation and MediaBox values — re-export it from the scanning software.
Images → PDF: page size, orientation and margin
PDF measures in points: 72 pt = 1 inch = 25.4 mm. A4 is 595.28 × 841.89 pt and Letter is 612 × 792 pt, both portrait; the page size defaults to the paper standard of your region (Letter in the US and Canada, A4 elsewhere) and you can change it.
“Fit to image” grows the page to the picture plus your margin, so nothing is scaled and nothing is cropped — the right choice for screenshots and receipts. A4 and Letter scale each image down to fit inside the margins and centre it; with orientation set to Auto, a picture wider than it is tall gets a landscape page.
Margin is in points: 0 for edge-to-edge, 36 pt for a half-inch border, 72 pt for a full inch. Note that most desktop printers cannot print closer than about 12 pt from the paper edge, so a 0 pt margin may still be trimmed at print time.
JPG and PNG are embedded exactly as they are, keeping their own compression. WebP, GIF and BMP cannot be embedded natively, so they are re-encoded to JPEG at quality 0.92 on a white background first — which is also why a transparent WebP arrives with a white backdrop rather than a black one.
PDF → Images: choosing 72, 150 or 300 dpi
The three settings are render scales of 1×, 2× and 4× against the PDF’s own 72 dpi coordinate space. An A4 page comes out at 595 × 842 px at 72 dpi, 1,190 × 1,684 px at 150 dpi, and 2,381 × 3,368 px at 300 dpi.
Pick 72 dpi for a quick thumbnail or a preview, 150 dpi for reading on screen and for slides — this is the default and the right answer most of the time — and 300 dpi only when the image will be printed or run through OCR. The jump is expensive: 300 dpi renders four times the pixels of 150 dpi and can exhaust memory on a phone somewhere past a few dozen pages.
Output is PNG (lossless, so text edges stay crisp), named document-p001.png with zero padding wide enough for the page count, which keeps them in order in any file manager or ZIP. Render all pages or just a range.
Remember what rasterising costs: the text becomes pixels. The result cannot be searched, selected, copied or reflowed, and it is much larger than the PDF it came from. Export to images to paste a page into a slide or a chat — not to store the document.
What this tool will not do — and why
No compression. Shrinking a PDF means finding every embedded image, decoding it, re-encoding it at a lower quality and rewriting the object streams — and getting one of those steps wrong on a client library produces a file that opens in one viewer and not another. A tool that quietly damages a contract is worse than no tool.
No password protection or removal. Writing encrypted PDF objects, and stripping them, both need a full crypto handler that the client-side libraries do not implement reliably. An encrypted file is rejected with a clear message instead of a corrupted result: remove the protection in Acrobat, Preview or the application that created it, then come back.
No text editing, no OCR, no form filling, no e-signature. Those need a text layout engine, a trained recognition model and a certificate store respectively — each of them a product of its own, not a tab on a page. What is here is the structural work: order, selection, orientation and format.
Nothing leaves your device
Every operation runs in this tab with pdf-lib and pdf.js. There is no upload, so there is no size limit, no page limit, no watermark and no copy on a server — which is the reason to use a client-side tool for contracts, medical records, tax documents and anything else you would not attach to a stranger’s web form.
Turn off your network after the page has loaded and the tools keep working. Long jobs yield between pages so the tab stays responsive, show progress per page, and can be cancelled part-way — the pages already produced are kept.
Multi-file results are packed with STORE rather than deflate: PDFs and PNGs are already compressed internally, so a second pass would add seconds and save almost nothing.