Sideways pages come from scanners that fed a landscape sheet through a portrait feeder, from phone photographs of documents, and from mixed bundles where someone appended a spreadsheet in landscape to a portrait report. Reading them means tilting your head or rotating the view every time you open the file.
Rotation in a PDF is a page attribute rather than a redraw. This tool sets each page’s rotation flag through pdf-lib, so the page content itself is copied untouched — text stays selectable, vector graphics stay sharp, and the file does not grow. Because it is metadata, the change is also exact: there is no resampling and no quality cost whatsoever.
The rotation is applied locally by pdf-lib. Your document is not uploaded, and the corrected file is written straight to your downloads.
-organized suffix.Unlike rotating an image, rotating a PDF page does not touch a single pixel or glyph. The PDF specification stores a /Rotate value on each page — 0, 90, 180 or 270 — and viewers apply it at display time. Setting that value is a metadata edit.
The practical consequences are all good: the file size stays essentially the same, text remains selectable and searchable, embedded fonts are untouched, and the rotation can be undone later with no accumulated loss. This is also why a rotated PDF prints correctly on any printer without further adjustment.
No, not at all. Rotation is stored as a page attribute and applied by the viewer, so no content is redrawn. Text stays selectable and vector graphics stay perfectly sharp.
Yes. Click the individual thumbnails you want to turn and leave the rest alone. Mixed-orientation documents can be fixed page by page in one pass.
Press rotate three times. Each press is ninety degrees clockwise, so three presses is the same as one turn to the left.
Yes. The rotation flag is part of the PDF standard, so every compliant viewer and printer honours it.
Essentially no. Only a small attribute changes on each page; the page content is copied as it was.
No. PDF.js draws the thumbnails and pdf-lib writes the rotation values, both inside your browser.