Skip to content
ToolStash

Rotate & Reorder PDF Pages

Fix a PDF whose pages are sideways, upside down, out of order, or padded with pages you do not want. Rotation, reordering and deletion all happen in your browser, and the saved file keeps its original quality.

Runs entirely in your browser — nothing is uploaded

Drop a PDF here to rotate or reorder its pages

One file at a time. To combine several documents first, use Merge PDF.

How to use it

  1. Drop a PDF onto the box above, or click Choose a file. The page list appears immediately — no upload wait, because there is no upload.
  2. Use and on any row to turn that page left or right in 90° steps, or ↺ All left / ↻ All right to turn the whole document at once.
  3. Drag a row to move it, or use and . Remove a page with .
  4. Click Save changes, then download the result.

The header line tracks what you have changed — how many pages were removed, how many rotated, and whether the order differs from the original.

How it works

A PDF page carries its rotation as a number in its dictionary, not as pixels. A page described as /Rotate 90 holds exactly the same content stream as an upright one; the reader is simply told to turn it a quarter turn before displaying. Fixing a sideways scan therefore means changing one number, not redrawing anything — which is why it is instant and why nothing is degraded.

Page order works the same way. The document has a page tree listing its pages in sequence; reordering means writing a new tree that references the same page objects in a different order. Deleting a page means leaving it out of that list.

This tool builds a new document and copies the page objects you kept into it, in your chosen order, setting each one’s rotation to its original value plus whatever you added. The copy is done in a single operation so that resources shared between pages — an embedded font, a logo used on every page — are stored once in the output rather than duplicated per page.

Reading the file only parses its page tree, not the page contents, which is why a 400-page document lists as quickly as a 2-page one.

Tips

  • Scans come out sideways when the scanner’s paper orientation does not match the page setup. If every page is wrong in the same direction, use All left or All right once rather than clicking through each page.
  • Pages alternating between upright and upside down is the signature of a double-sided scan fed the wrong way. Rotate the affected pages 180°.
  • Deleting a blank separator page from a scan is often all that stands between a document and looking professional — the page list shows dimensions, and an unexpected size is usually a stray inserted page.
  • Check the result in the PDF Viewer before sending it on. Orientation is one of those things that is obvious on screen and invisible in a page list.

Frequently asked questions

Is my PDF uploaded anywhere?
No. The file is read into your browser’s memory, rearranged by JavaScript running in this tab, and written back out as a download. Nothing is transmitted, which is the point — a scanned contract or ID that needs a page turned the right way up is exactly the sort of file you should not be handing to an unknown server.
Does rotating or reordering reduce quality?
No. Pages are copied at the object level, not re-rendered — the same mechanism Merge PDF uses. Rotation is stored as a property of the page rather than by redrawing its contents, so text stays selectable and searchable, vector graphics stay sharp at any zoom, and images are not re-compressed. The output file is roughly the same size as the input.
Why can I not see thumbnails of the pages?
Because rendering a page to a picture and rearranging a page are two very different jobs, needing two different engines. This tool uses pdf-lib, which can restructure a document but cannot draw it. Loading a rendering engine as well would roughly double what the page downloads for everyone, including people who only need to turn one page around. If you need to see the pages, open the file in the PDF Viewer in another tab and work from that — each row here shows the page number, its dimensions and its orientation.
The rotation looks wrong — the page was already rotated. What happened?
Rotation here is additive, not absolute. If a page arrives already rotated 90°, clicking rotate-right once puts it at 180°, not 90°. Each row shows the resulting orientation and, in blue, how much you have added, so you can see both. Four clicks in the same direction always returns a page to where it started.
Can I delete pages and how do I get them back?
Yes — the ✕ button removes a page from the output. It never touches your original file, so your source PDF still has every page. Within the tool, Undo all restores the document to exactly how it loaded, including any pages you removed and any rotation you applied.
Is there a page or file size limit?
No limit we impose. Page count barely matters because only metadata is read to build the list. File size is the real constraint, since the whole document sits in this tab: a few hundred megabytes is fine on a laptop, and the tool warns above 100 MB because phones have much less room to work with.
Why is my password-protected PDF rejected?
Rearranging pages requires decrypting the content, and this tool deliberately does not attempt to bypass encryption. Open the file in your PDF reader with the password, save or print it to a new unprotected PDF, then edit that. Files that only restrict printing or editing, rather than requiring a password to open, usually work fine.
What happens to bookmarks, links and form fields?
Page content — text, images, vector art — always transfers intact. Interactive layers do not reliably survive, because bookmarks and internal links point at page objects that this tool replaces with copies. If a document’s table of contents or fillable form matters, rotate it in a dedicated PDF editor instead. Document metadata is deliberately not carried over: the output has no author or title copied from the source.

Browse every tool in PDF Tools.

Found a bug or want a feature? Tell us — ToolStash is built from user requests.