Fully transparent text
Text drawn with a fill alpha low enough that it renders nothing at all.
How the text is hidden
Constant alpha arrives through an /ExtGState graphics-state dictionary referenced from the page's resources: ca sets the fill alpha, CA the stroke alpha. Set the fill alpha to zero and the glyphs are painted at a normal size, in a normal colour, in the right place, and nothing appears. It is a single operator away in any producer that supports transparency.
Why a model still reads it
Opacity is a painting parameter. The show operator ran and the string is in the content stream, so extraction returns it in full.
What we do about it
The pack's own note records that this technique was ADDED to the engine's published technique vocabulary ( §7.5), which is additive-only and did not name it before — a new name for callers to branch on, not a gap in the PDF specification.
How often it fires
0.16% of 630 real PDFs — 510 SEC-sourced contracts plus 120 Common Crawl web PDFs (35 producers), measured 2026-08-21.
This is an alert-volume number and nothing else. It says how often the alarm sounds on documents as found — not how often it is right, and not whether what it found was harmless. Documents as found may themselves carry concealment. Read it against the population named above rather than as a property of documents in general.
Seen in the wild
PromptArmor showed that a PDF uploaded to Atlassian's Rovo assistant could carry an instruction set in transparent colour at one pixel, telling it to gather sensitive data and post it to an attacker's URL — with no approval click and no warning.
Check your own file
Three commands: a key, credit, a verdict.
Start with the API