52 lines
2.0 KiB
Markdown
52 lines
2.0 KiB
Markdown
---
|
||
description: Collaboratively annotate a PDF — propose markup, review together, iterate
|
||
argument-hint: "[path-or-url]"
|
||
---
|
||
|
||
> If you need to check which tools are connected, see [CONNECTORS.md](../CONNECTORS.md).
|
||
|
||
# Annotate PDF
|
||
|
||
Walk through a document with the user, proposing and applying
|
||
annotations section by section. The user reviews each batch in the
|
||
live viewer before you continue.
|
||
|
||
## Workflow (AI-driven default)
|
||
|
||
1. **Open** — `display_pdf` (or use existing `viewUUID` if already open)
|
||
2. **Understand** — `interact` → `get_text` on the first page range
|
||
(≤20 pages) to read content
|
||
3. **Propose** — describe to the user what you plan to annotate:
|
||
> "I'll highlight the termination clause on page 2, add a note
|
||
> 'Review 30-day window' next to it, and stamp page 1 as DRAFT.
|
||
> Sound good?"
|
||
4. **Apply** — on approval, `interact` with batched commands:
|
||
`add_annotations` + `get_screenshot` of the affected page
|
||
5. **Review** — show the screenshot, ask for edits
|
||
6. **Iterate** — move to the next section, repeat
|
||
7. **Finish** — remind the user they can download the annotated PDF
|
||
from the viewer toolbar
|
||
|
||
## Manual mode
|
||
|
||
If the user gives explicit instructions ("highlight paragraph 3",
|
||
"stamp CONFIDENTIAL on every page"), skip the proposal step and
|
||
execute directly. Still confirm with a screenshot.
|
||
|
||
## Annotation types available
|
||
|
||
- **Text markup:** `highlight_text` (auto-finds text — preferred),
|
||
highlight, underline, strikethrough
|
||
- **Comments:** note (sticky), freetext (visible on page)
|
||
- **Shapes:** rectangle, circle, line
|
||
- **Stamps:** any label — APPROVED, DRAFT, CONFIDENTIAL, REVIEWED
|
||
- **Images:** signatures, initials, logos (see `/pdf-viewer:sign`)
|
||
|
||
## Tips
|
||
|
||
- Prefer `highlight_text` over manual `rects` for text — it finds
|
||
coordinates automatically
|
||
- Batch related annotations in one `interact` call
|
||
- End each batch with `get_screenshot` so the user sees the result
|
||
- Keep proposals small (3–5 annotations per batch) so review is easy
|