An incremental update is the PDF format’s built-in way to change a file: instead of rewriting it, you append the changed objects plus a new cross-reference section to the end. The original bytes stay exactly where they were, so everything you did not edit is guaranteed unchanged — bit for bit.
Why this happens
Most tools save an edited PDF by re-serialising it: parse the whole document, rebuild it, write a brand-new file. That is easy to implement, and it is why a one-word change can come back with different object numbers, re-encoded images, a rearranged structure, and — sometimes — subtly different rendering. You asked to change a price and got a new document that merely resembles the old one.
The PDF specification has a better answer built in, and it predates every online editor: append. Write the changed objects at the end, follow them with a cross-reference section pointing at the new versions, and leave everything before untouched. Readers follow the last cross-reference and see your edit. This is the same mechanism digital signatures rely on to prove nothing earlier was altered.
How Online PDF Edits handles it
When an edit can be drawn with the document’s own embedded font, we save it as an incremental append. The original file remains an exact byte-for-byte prefix of the result — not "visually identical", literally the same bytes, followed by your change.
That property is asserted in our own test, not just claimed: the check saves a file, edits an object, and fails if the original is not an exact prefix of the output. If the invariant ever breaks, the build tells us before you do.
The specifics
| Original bytes after an edit | Preserved exactly — an exact prefix of the new file |
|---|---|
| What gets appended | Only changed objects + a new xref section |
| Measured page change (sample invoice, one line edited) | 0.8% of the rendered page |
| Requires | A classic cross-reference table original |
| When we fall back to a full save | Only when a new font must be embedded |
Limitations
- Incremental append needs a classic cross-reference table. A PDF using cross-reference streams is detected and refused with a clear message rather than written into a file a reader could not follow.
- If your new text needs a character the document’s embedded font does not contain, we must attach a font — and that edit is saved as a full re-serialise instead of an append.
Don’t take our word for any of this. Edit the sample invoice, export it, then select the line you changed and copy it — you should get your new wording, not the old. Compare the export against the original and see what moved.
Every claim in this reference is written from the code that implements it, and every number is measured rather than estimated. The parts you can verify without trusting us are the ones we put in front of you.