Text positioned off the paper

docx.offpage-text

A frame, an anchored drawing or a VML shape is positioned so that its whole box falls outside the declared page.

How the text is hidden

Three spellings, all reported under one name. A paragraph frame states w:framePr with w:hAnchor/w:vAnchor="page" and w:x/w:y. A DrawingML anchor states wp:positionH/wp:positionV with relativeFrom="page" and a wp:posOffset. A VML shape states margin-left/margin-top in its style with mso-position-*-relative:page. In each case the text is laid out beyond the paper.

Why a model still reads it

Position is layout. The runs sit in the part in document order and every extractor returns them as body text.

What we do about it

For a frame and for a DrawingML anchor the parser judges the box, not its corner: past the far edge the origin decides on its own, but before the near edge the box counts as gone only when origin plus extent ends before the paper begins, with a one-point tolerance — extent from wp:extent for anchors and w:w/w:h for frames. The VML spelling reads no extent, so there the origin decides in both directions. Page size is read from w:pgSz in the body and handed to header and footer parts, which declare none of their own. A VML shape pinned by a keyword such as mso-position-horizontal:right is not judged, because the keyword makes the margin inert. The reason is off-canvas; the rule fires at high, action flag.

How often it fires

0.06% of real commercial legal DOCX — 1,586 English contracts and agreements (corpus-legaldocx), mixed A4 and Letter, measured 2026-08-29.

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.

next

Check your own file

Three commands: a key, credit, a verdict.

Start with the API