Reorder pages in a PDF by dragging and dropping
Drag and drop pages into a new order without recreating the entire document. This is handy when a scan came through in the wrong sequence or when you want to rearrange sections of a report.
Initializing in your browser…
A document was scanned out of order and pages 5 and 6 need to swap.
Input
doc.pdf · drag thumbnails: …4, 6, 5, 7…
Output
doc.pdf with the corrected page sequence
Reordering is done visually by dragging page thumbnails, then the PDF is rebuilt in the new order, far less error-prone than describing ranges. Content per page is preserved exactly.
Drag and drop pages into a new order without recreating the entire document. This is handy when a scan came through in the wrong sequence or when you want to rearrange sections of a report.
A double-sided document scanned one side at a time comes out as 1,2,3,...(fronts) then the backs. Drag or use Move-to-position controls to interleave the back pages between the fronts; the orange 'was N' badges confirm each page's original position before you click Save Reordered PDF.
If a title page ended up last, focus its row and press Ctrl+Home (or click Move-to-top) to send it to position 1, then save - the page's content is copied faithfully by pdf-lib, only its order changes.
PDF Page Reorder loads your file entirely in the browser and analyzes it with pdfjs-dist (getPDFInfo), which reports the page count and seeds the working order as a simple 1..N index array. To let you see what you are moving, it rasterizes page previews with pdf.js at scale 0.25 and encodes each as a quality-0.5 JPEG, but only for the first Math.min(count, 30) pages - so a document longer than 30 pages still reorders correctly, the remaining rows just show the page number instead of a thumbnail. Previews are held as object URLs and revoked when you swap files or leave, so nothing is uploaded or retained.
Reordering happens purely on that index array: dragging a row triggers a live splice during dragOver (the list rearranges as you hover, not on drop), and you can also nudge pages with the per-row Move-up / Move-down / Move-to-top (ChevronsUp) / Move-to-bottom (ChevronsDown) buttons or the keyboard shortcuts Ctrl+↑, Ctrl+↓, Ctrl+Home and Ctrl+End on the focused page. A Reverse button flips the whole sequence and Reset restores the original 1..N order; both a list view and a grid view are available, and any page whose new position differs from its original is flagged in orange with a 'was N' / 'originally page N' badge. The Save button stays disabled until isOrderChanged is true, so an unchanged document can't be re-exported by accident.
When you save, reorderPages (built on pdf-lib) creates a brand-new empty PDFDocument and, for each entry in your chosen order, calls copyPages on the source and addPage into the new document - so each output page is a faithful copy of the original page's content stream, and only the sequence changes; pages are never re-rendered or recompressed. The function guards each index (pageNum > 0 and <= getPageCount) before copying, so a stray index can't crash the export. The result downloads as '{originalname}_reordered.pdf'. Because the rebuild is page-level, this tool changes order only - it does not rotate, resize, or re-orient pages, so a scan with mixed page orientations keeps that mix, and document-level structures such as the outline/bookmark tree are not carried into the freshly created document.
Yes. Drag any page thumbnail to any position in the list.
No. Only the sequence changes; page content stays identical.
PDF parsing and editing happen in your browser. Documents, and everything inside them, are never uploaded or stored remotely.