Goal
Let users review a PDF with standard annotations that remain inspectable in compatible readers.
Scope
- Create text-note, highlight, underline, strikeout and ink annotations.
- Provide author, color and optional comment text.
- List annotations for the current document and allow deleting annotations created in the current session.
- Preserve existing annotations during save.
- Offer an explicit Flatten annotations option for users who need fixed visual output.
Out of scope
- Real-time review collaboration.
- Importing replies or full annotation-thread editing.
- Cryptographic signatures.
Acceptance criteria
- Saved annotations appear in at least two common PDF viewers.
- Highlight geometry is stored as QuadPoints, not only a bounding rectangle.
- Existing annotations survive a no-op save.
- Flattening is opt-in and produces the same visible result.
- Rotated/CropBox pages place annotations correctly.
- Tests cover supported annotation dictionaries, appearance streams and malformed annotations.
Technical note
lopdf can inspect page annotations; qpdf can flatten annotations, but interactive annotations require correct dictionaries and appearance streams.
Goal
Let users review a PDF with standard annotations that remain inspectable in compatible readers.
Scope
Out of scope
Acceptance criteria
Technical note
lopdf can inspect page annotations; qpdf can flatten annotations, but interactive annotations require correct dictionaries and appearance streams.