mirror of
https://github.com/storytold/pdfcraft.git
synced 2026-10-25 10:39:01 -06:00
Highlight appearances written by other editors are a transparency group whose content is filled with `/BM /Multiply`. Every `/Group` form got a layer of its own, so the Multiply blended with that layer's transparent backdrop and the layer then covered the page as an opaque block. Vendored hayro-interpret patch (28): a group that is neither isolated nor knockout composites its elements with the backdrop (ISO 32000-2 §11.4.7), so when it is entered at full opacity with no soft mask and Normal blending there is nothing for a layer to add, and its content is drawn straight onto the page. `/I` and `/K` are read from the group dictionary. An isolated group keeps its blank backdrop; a knockout group or one entered at partial opacity, under a soft mask or with a blend mode keeps its layer. Test: `raster::tests::a_multiply_highlight_inside_a_transparency_group_keeps_the_text` (the appearance drawn as an annotation and from page content, with `/I false /K false` spelled out and with no group at all; an isolated group as a control; a group entered at half opacity still composited as one). It fails before the fix with the text pixel yellow instead of black. parity: view.render-transparency cites it and says what is still approximated. Claude-Session: https://claude.ai/code/session_01RUNQSPVXx3dDBabRZHAnjz Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>