2026-07-25
Why your PDF rotation isn't saving — how page rotation actually works
"PDF rotation not saving" is one of the most common PDF complaints there is — search it and you'll find guide after guide promising to fix it. Most of the time the rotation did happen. The file just doesn't behave the way people expect afterward, because a PDF page's rotation is a single stored number with its own particular rules, and most rotate buttons don't explain any of them.
What actually changes when you rotate a page
A PDF page carries one entry in its own page dictionary called /Rotate. It only
takes four values: 0, 90, 180, or 270 degrees, always clockwise. That's the whole mechanism.
Rotating a page doesn't touch the content stream — the actual instructions for the text, images,
and vector lines on that page — at all. It changes a single "display this many degrees rotated"
instruction and leaves everything else byte-for-byte identical. That's also why rotating a
40-page PDF is close to instant and doesn't grow the file: there's no image to re-encode, just an
integer to update on however many pages you touched.
Two different things both get called "rotate"
Search "PDF rotation not saving" and the complaint is always the same shape: rotate a page,
close the file, reopen it, and it's back to how it started. Many free PDF readers offer two
controls that look identical but do different things. One is a view rotation — a
display preference for that reading session only, stored in the reader's own settings, never
written into the file itself. The other is a page rotation that rewrites the
page's actual /Rotate value and saves a new file, which every other app, every
printer, and the next person who opens it will also see. This is an established enough distinction
that PDF vendors document it by name — Bluebeam has a support page titled, plainly, "Rotate View
vs. Rotate Pages." If a rotation doesn't stick, it's almost always the first kind: nothing was
ever written to the file.
Some pages arrive pre-rotated before you touch anything
Not every sideways page got that way from someone clicking rotate. Scanners and phone-scanning
apps often capture a page in whatever orientation the sensor happened to be in, then just set
/Rotate to correct the display, instead of re-encoding the image the right way up.
That keeps the output small, but it means a scanned PDF can arrive with real, non-zero rotation
already baked into individual pages — sometimes a different value per page, if sheets were fed
through the scanner in alternating directions. Opening a document like that and finding page 4
sideways doesn't mean anyone rotated it wrong. It means the scanner already wrote a rotation
value, and anything you do next happens on top of that value, not on a blank slate.
Rotation adds up, it doesn't reset
That "on top of" part matters, because rotating a page doesn't set its orientation to a fixed
value — it adds your chosen amount to whatever rotation the page already had. A page that already
carries 90° and gets rotated another 90° by a tool ends up at 180°, not 90°. This is exactly what
NearPDF's own rotate implementation does: page.setRotation(degrees((page.getRotation().angle
+ rot) % 360)) reads the page's current angle and adds the requested rotation, wrapping back
to 0 past 360. Four clicks of a 90° rotate button always return a page to where it started — but
it also means that if a page still looks wrong after one click, the fix is usually another click,
not a broken button.
Why the same file can look right in one app and wrong in another
Even a correctly-written /Rotate value isn't a guarantee every piece of software
downstream honors it the same way. Print pipelines are a known trouble spot: Mozilla's own bug
tracker has a filed report of its built-in PDF viewer failing to print rotated pages correctly —
the on-screen rotation was right, the printed page wasn't. That's not something a rotate tool can
prevent from its side. Writing a standards-correct /Rotate value into the file is the
entire job of a page rotation tool; whether the next viewer, printer driver, or converter in the
chain reads that value correctly afterward is a property of that other software, not of the file
a rotate tool hands off.
How NearPDF applies this
NearPDF's rotate tool works on individual pages in the workspace grid: each click of a page's
rotate control adds 90° to that page, shown live as a preview so you can see it before saving
anything. Saving combines that accumulated per-page rotation with whatever /Rotate
value the page already had and writes the result into the output PDF via pdf-lib — a real,
permanent change to the file, not a view setting — entirely inside a Web Worker on your own
device, with nothing uploaded. Reorder, delete, and rotate all operate on the same page list
before you save once, so a sideways scanned page, a page you want gone, and a page out of order
can all be fixed in a single pass instead of three separate tools and three separate exports.