pdftract/crates
jedarden cbbe7e5f44 feat(pdftract-62uon): implement Do operator for form XObject execution
- Add ResourceStack for nested resource scope management
- Add ExecutionContext for cycle/depth detection in form XObject recursion
- Add execute_with_do() function with full graphics state support (q/Q/cm/Do)
- Add ImageXObject type for recording encountered images
- Add comprehensive tests for ResourceStack, ExecutionContext, and Do operator

Per Phase 3.3 (plan.md:1579-1593):
- Form XObject lookup via ResourceStack
- /Matrix application to CTM
- Cycle detection (STRUCT_XOBJECT_CYCLE)
- Depth limiting (STRUCT_DEPTH_EXCEEDED, max 20)
- Image XObject recording without glyph production

Acceptance criteria:
- ResourceStack shadowing: form resources shadow parent resources
- Cycle detection: duplicate XObject ID triggers STRUCT_XOBJECT_CYCLE
- Depth limit: 20-level max, triggers STRUCT_DEPTH_EXCEEDED
- Image XObjects: recorded with CTM-transformed bbox, no glyphs

Closes: pdftract-62uon
2026-05-24 15:42:26 -04:00
..
pdftract-cer-diff docs(pdftract-aawrz): add LICENSE-MIT and LICENSE-APACHE files 2026-05-23 10:36:28 -04:00
pdftract-cli feat(pdftract-64p5): implement classify CLI subcommand and --auto flag 2026-05-24 15:16:56 -04:00
pdftract-core feat(pdftract-62uon): implement Do operator for form XObject execution 2026-05-24 15:42:26 -04:00
pdftract-libpdftract feat(pdftract-3s2i): implement Phase 5.5.2 validation filter 2026-05-24 04:57:17 -04:00
pdftract-py feat(pdftract-2nu0s): implement Python SDK contract conformance 2026-05-24 08:55:11 -04:00