pdftract/crates/pdftract-cli
jedarden 99b41f04b6 feat(pdftract-1q19p): implement OCG /OC tag tracking with is_hidden flag
Add is_hidden field to Glyph and MarkedContentFrame structs for tracking
Optional Content Group (OCG) visibility. When a BDC operator with /OC tag
references an OCG that is OFF by default, glyphs within that marked content
block receive is_hidden=true.

Changes:
- Glyph struct: Add is_hidden: bool field (default false)
- MarkedContentFrame struct: Add is_hidden: bool field (default false)
- MarkedContentStack: Add is_hidden() method to check if any frame is hidden
  (OR semantics: outer hidden makes all descendants hidden)
- MarkedContentFrame::bdc(): Add is_hidden parameter
- MarkedContentStack::push_bdc(): Add is_hidden parameter
- parse_bdc(): Add default_off_ocgs parameter to check OCG visibility
  - Extract /OCG reference from properties dict
  - Set is_hidden=true if OCG is in the OFF set
- emit_glyph(): Add is_hidden parameter and pass to Glyph::new()
- Add comprehensive tests for OCG functionality

Per bead pdftract-1q19p acceptance criteria:
- BDC /OC with OCG in default-OFF: glyphs have is_hidden=true
- BDC /OC with OCG not in OFF: glyphs have is_hidden=false
- Nested OCs with outer hidden: all inner glyphs hidden
- No /OCProperties: no glyphs marked hidden

Closes: pdftract-1q19p

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-26 22:25:27 -04:00
..
benches feat(pdftract-3h9xo): implement threads JSON output + schema integration 2026-05-25 13:40:15 -04:00
src feat(pdftract-1q19p): implement OCG /OC tag tracking with is_hidden flag 2026-05-26 22:25:27 -04:00
tests feat(pdftract-3b1mk): implement TH-09 inspector XSS test with CSP headers 2026-05-26 20:38:21 -04:00
build.rs docs(pdftract-32y9): finalize SDK architecture note with workspace layout, cross-compile matrix, and KU-12 alignment 2026-05-24 06:38:23 -04:00
Cargo.toml feat(pdftract-3b1mk): implement TH-09 inspector XSS test with CSP headers 2026-05-26 20:38:21 -04:00
pdftract-cli.cdx.json feat(pdftract-67tm8): implement MCP stdio transport with integration tests 2026-05-23 00:16:42 -04:00