16engine modules
1PDF dependency (lopdf, MIT)
160integration tests
0C++ / AGPL deps
Live feature coverage against the Adobe-Acrobat / Apple-Preview surface is tracked in the port report, where status is derived from source. This page covers the engine's structure, not the feature count.
Module map
| module | implemented now | planned |
|---|---|---|
| doc | open · save · from_bytes · to_bytes · version · metadata get/set · merge | — |
| page | page_count · page_numbers · rotate · page_rotation · delete_pages · reorder_pages · extract_pages/split_by_count · crop_page · watermark_text | — |
| text | extract_text · extract_all_text · edit_text · find_replace_text · ocr_page | — |
| annot | add_note · annotation_count · add_markup (highlight · ink · stamp) · draw_rect/draw_line/draw_path (shapes) · add_measure | — |
| form | has_acroform · form_fields · set_field (fill) · flatten_form · create_text_field/checkbox/radio (create fields) · export_fdf/import_fdf · export_xfa/set_xfa_datasets (XFA) | — |
| sign | is_signed · signature_count · has_permissions_dict · sign (certificate) · verify_signatures · add_timestamp | — |
| security | is_encrypted · encrypt · decrypt · redact · sanitize | — |
Verification
The test suite builds valid PDFs in memory with lopdf (no external fixtures) and drives the public Pdf API: page counting, a Unicode metadata save/reopen round-trip, rotation normalization and out-of-range handling, annotation persistence across a save/load cycle, and confirmation that every unimplemented capability returns a typed error rather than panicking or silently succeeding. Runs identically in a headless Linux CI.