JoyToolsJoyTools

Rotate PDF

100% Client-Side Private — Zero Server Uploads

Rotate PDF pages by 90°, 180°, or 270°. Select all pages or specific ones.

🔒 100% Client-Side: All data is processed locally in your browser and never leaves your device (Zero Server Uploads).
E-E-A-T Security Proof →
Rotate PDF Pages
100% Client-Side Private — Zero Server Uploads

Permanently rotate PDF pages by 90°, 180°, or 270° with zero quality loss. Target all pages in the document or specific page numbers.

Drop a PDF file here to rotate

or click to browse

1. Rotation Angle

2. Page Selection

Leave blank for all pages, or enter comma-separated page numbers (1-indexed)

Share & Developer Embed

How do I use Rotate PDF?

1

Upload a PDF with upside-down or sideways pages, or click "Load Sample Data".

2

Rotate individual pages `90° CW` / `90° CCW` or click "Rotate All" to orient the entire document.

3

Click "Save & Download PDF" to permanently write the new `/Rotate` metadata into the file.

What features does Rotate PDF offer?

Lossless metadata rotation: Updates the native PDF /Rotate attribute without rasterization or quality loss

Flexible rotation angles: 90° clockwise, 180° upside-down flip, and 270° counter-clockwise

Selective page targeting: Apply rotation to the entire document or specific comma-separated page numbers

Permanent orientation fix: Corrected views are preserved across Adobe Acrobat, Apple Preview, and browsers

Preserves embedded typography, vector line drawings, annotations, and interactive bookmarks

100% client-side execution via pdf-lib — zero file upload or server retention

ISO 32000-1 `/Rotate` Page Dictionary Attribute Specification

PDF page rotation modifies the `/Rotate` integer entry on the `/Page` dictionary (`0`, `90`, `180`, `270`) in $O(1)$ time without altering content streams.

Valid PDF `/Rotate` Dictionary Values & Coordinate System Shifts
/Rotate ValueVisual Orientation ShiftEffective Aspect RatioContent Stream Re-encoding
0 (Default)Upright native orientationWidth × Height (e.g. 612 × 792)None (0% quality loss)
9090° Clockwise (Portrait → Landscape)Swaps visual Width & Height (792 × 612)None (Metadata flag update only)
180Upside-Down inversionWidth × Height unchangedNone (Metadata flag update only)
270 (or -90)90° Counter-Clockwise (270° CW)Swaps visual Width & Height (792 × 612)None (Normalized modulo 360)

Frequently Asked Questions about Rotate PDF

Why does rotating a PDF page in a browser viewer not save when I close the tab?

Clicking Rotate inside Chrome or Edge's built-in PDF viewer only rotates the temporary viewport camera in memory. Our tool rewrites the permanent `/Rotate` integer inside each `/Page` dictionary and serializes a new PDF file.

Does rotating a PDF degrade image quality or increase file size?

No. Rotating a PDF updates a single integer key (`/Rotate 90`, `180`, or `270`) in the page object dictionary without decoding or re-compressing any images, fonts, or vector paths.

Can I rotate a PDF page by an arbitrary angle like `45°` or `2°` (deskew)?

The ISO 32000-1 PDF specification restricts the `/Rotate` page attribute strictly to multiples of 90 (`0`, `90`, `180`, `270`). Arbitrary deskew angles require transforming the internal page content stream matrix.

What happens if a page already had `/Rotate 90` and I rotate it another `90° CW`?

Rotation angles are additive modulo 360: `(existingRotation + deltaRotation) % 360`. A page already at `90°` rotated by `+90°` is updated cleanly to `/Rotate 180`.