Bench

PDF Viewer, Editor & Annotator

beta

Read, search, fill, comment on and reorganise PDFs in your browser — nothing is uploaded

How it works

Drop a PDF on the page, open one with the picker, paste it, or try the bundled sample. The document is drawn by pdf.js — the engine inside Firefox — served from this site, so the file never leaves your device; a 300-page scan, a form and a password-protected contract all open the same way. Read in a continuous scroll, one page at a time or two-up; zoom, rotate the view, follow links and the outline, search with match counts, select and copy text, and download attachments. The side panel lists pages as thumbnails, the outline, every comment in the document, the pages to organise, attached files and the document's info (title, author, dates, sizes, permissions, whether a form or signatures are present). To mark up, select text and press Highlight — or use Underline and Strike-out — click a page with the Note tool for a sticky note, type with the Text tool or draw with the pen; every mark can carry a comment, and the Comments tab threads replies and resolve states the way Acrobat does, so the review opens in Acrobat, Preview and Firefox alike. Comments already in the file are listed too, with the words under each highlight, and can be answered, resolved, edited or deleted; the whole list copies as Markdown or downloads as JSON. Form fields are filled in place. The Organise tab shows the pages as tiles: select with a click, a shift-click or a range like 1-3, 5, drag to reorder, rotate, delete, duplicate, crop by margins, insert a blank page or the pages of another PDF (that is how merging works), extract a selection to a new file, or split the document every N pages, by ranges or by its chapters into a zip. The More menu flattens form fields, removes every comment, protects the file with AES-256 or removes its password, and saves a page as PNG. Save writes the file in place when the browser allows it (Chrome and Edge), otherwise downloads a copy; every change can be undone, and the working copy is remembered so a reload can bring it back. Structural changes are made by pdf-lib in a background thread, so even large documents stay responsive.

Questions

Is my PDF uploaded anywhere?

No. pdf.js renders it and pdf-lib edits it inside your browser tab; the file, its comments and any password you type stay on your device. Saving writes to your disk or downloads a copy.

Will the comments show in Acrobat or Preview?

Yes. Highlights, notes, drawings and text boxes are written as standard PDF annotations, replies are threaded with the same references Acrobat uses, and a resolved comment is recorded as a review state, so other viewers list them the same way. Comments that were already in the file are shown here too.

Can I fill in a form?

Yes — text fields, check boxes, radio buttons and drop-downs are editable on the page, and Save writes the values into the file. Flatten the form fields (More menu) to bake the values into the page content for good.

How do I merge or split PDFs?

Open the first file, go to the Organise tab and use Insert PDF to add the pages of another file at any position; Save writes the merged document. Split offers every N pages, your own ranges, or one file per chapter of the outline, downloaded as a zip.

What is the difference between rotating the view and rotating pages?

The toolbar's rotate button (R) only turns the view for reading. The Organise tab's rotate buttons change the pages themselves and are written into the file.

Does it open password-protected files?

Yes. You are asked for the password, which is used only by the PDF engine in your browser; the document stays protected when you save it. Remove the password from the More menu, or protect an open file with a new one (AES-256).

Why does Save download a copy in some browsers?

Writing a file in place needs the File System Access API, which Chrome and Edge provide. Elsewhere, Save downloads the edited document instead.

Is there a size limit?

Documents of several hundred megabytes open, since pdf.js reads pages on demand. Structural changes (pages, notes, replies) rewrite the file in a worker, which takes a few seconds on very large documents; the working copy is remembered between reloads up to 200 MB.