What this tool does
PDF Rotator writes a new PDF whose selected pages have an additional quarter-turn, half-turn, or three-quarter-turn applied to their current rotation.
Choose this tool when…
- Some or all pages display sideways or upside down.
- You only need to rotate a range, not the whole file.
- You want a local rotation that does not rasterize the pages.
Typical jobs this page is built for
- Turn selected portrait pages 90° for landscape viewing.
- Use 270° as a quarter-turn the other way.
- Apply 180° to pages that are upside down.
- Leave correctly oriented pages unchanged by targeting a typed range.
How processing actually works
pdf-lib loads with ignoreEncryption: true. For each selected page, setRotation(degrees((currentRotation + rotation) % 360)). Angles other than 90, 180, or 270 are rejected.
Supported files, outputs, and limits
- Input
- One PDF, up to 50 MB.
- Output
- {base}-rotated.pdf
- Scope
- All pages, or selected pages with First page / First 3 / Last 3 / All presets.
Step-by-step workflow
- Upload one PDF.
- Pick 90°, 180°, or 270°.
- Pick all pages or a range.
- Click Rotate PDF.
- Download {base}-rotated.pdf.
- Check orientation in the download, not only in the iframe.
What changes in the output
Only the page rotate flag is updated as implemented; content is not rasterized. Encrypted files may fail. Signatures typically become invalid after save().
Privacy and where processing occurs
Rotation runs locally with pdf-lib. The selected PDF is not uploaded for rotation. Identified analytics may include byte counts, page count, affected-page count, and the chosen angle, not the filename, document text, or typed page list.
How this differs from nearby DevToolKit tools
- PDF Editor & Signer can add a rotate_page operation in its server-backed export path; this tool rotates in the browser only.
- Image Rotate & Flip works on JPG/PNG/WebP, not PDF page objects.
Output review checklist
- Scroll every affected page in the download, not only the iframe.
- Confirm mixed portrait/landscape pages still look right.
- Check links, forms, and annotations after the rewrite.
- Keep the original; certificate-based signatures typically become invalid after save().