Edit a PDF the way you would edit a design. Drop the file and every text block, image, and shape on the page becomes its own element you can click, change, move, or delete. It all runs in your browser, so the document never leaves your device.
Edit the text itself, not a box on top of it
Many free PDF editors cannot change text that is already in the file. They cover it with a white rectangle and type a new line over the top, in whatever font they have. Here the PDF is taken apart into real text, so you change the words themselves. Paragraphs usually come in as one block that reflows as you type, though some PDFs store every line separately. Fonts that match a Google Fonts family load in full, and the rest come from the PDF itself.
Images, shapes, and layout
Every image is a separate element. Swap one for your own, crop it, move it, or delete it. Vector artwork stays vector, so logos and charts stay sharp at any zoom. You can also change colours, add text anywhere, draw, or add shapes from the left panel.
Pages
The page strip under the canvas adds, duplicates, removes, and reorders pages. Each page keeps its own size, so a landscape chart in a portrait report stays landscape. Use the full-screen button at the top of the editor when you want more room.
Private by design
Most online PDF editors upload your file to their servers to process it. This one does not. The PDF is parsed with pdf.js in your browser, edited there, and the new file is written there too. The PDF itself is never sent anywhere.
What it does not do
The download is a new PDF built from what is on the canvas, not a patch of the original file. That is what makes real text editing possible, and it also means a few things do not survive: interactive form fields come in as plain text, comments and annotations are flattened, and links, bookmarks, and digital signatures are dropped. Scanned pages have no text to edit until they have been through OCR. Unusual embedded fonts, heavily ligatured scripts, and complex transparency can shift slightly, so check the result before you send it. If any of those matter for a document, keep the original.
Put this editor in your own app
This page is a thin wrapper around Polotno SDK's PDF editor. The import, the editor, and the export are the same packages you install:
import { pdfToJson } from "@polotno/pdf-import";
import { jsonToPDFBlob } from "@polotno/pdf-export/browser";
// PDF in: every text block, image, and shape becomes an element
const design = await pdfToJson({ pdf: await file.arrayBuffer() });
store.loadJSON(design);
// ...the user edits in <Workspace store={store} /> ...
// PDF out: vector, with selectable text
const blob = await jsonToPDFBlob(store.toJSON());See PDF import and PDF export for the options.
