D
Dexify
Rotate PDF — Fast & Private
Client-side rotation
Per-page & bulk rotate
No watermarks

Rotate PDF

Rotate specific pages or the whole PDF. Use the preview controls, apply to selected pages, then export instantly.

Ready
Pages: -
Download PDF

Frequently Asked Questions

Are my files uploaded?

No. Rotation runs locally in your browser.

Per-page rotation?

Yes. Use thumbnails or preview buttons; export applies saved rotations.

Quality preserved?

Rotation uses pdf-lib setRotation so text/vector quality stays intact.

Selections?

Use checkboxes on thumbnails to rotate only chosen pages.

Max file size?

About 100 MB depends on device memory.

Offline?

Yes. After scripts load, rotation works offline.

const setAllPagesSelected = () => { if (!pdfDoc) return; selectedPages = new Set(Array.from({length: pdfDoc.numPages}, (_,i)=>i+1)); updateSelectionLabel(); renderThumbs(); }; function applyRangeSelection(rangeStr) { if (!pdfDoc) return; const total = pdfDoc.numPages; if (!rangeStr || !rangeStr.trim()) { setAllPagesSelected(); return; } const parts = rangeStr.split(',').map(p => p.trim()).filter(Boolean); const set = new Set(); for (const part of parts) { const m = part.match(/^(\d+)(?:-(\d+))?$/); if (!m) continue; const start = parseInt(m[1],10); const end = m[2] ? parseInt(m[2],10) : start; const s = Math.min(start,end), e = Math.max(start,end); for (let n = s; n <= e; n++) { if (n >=1 && n <= total) set.add(n); } } if (!set.size) setAllPagesSelected(); else selectedPages = set; updateSelectionLabel(); renderThumbs(); }