Table of Contents

Namespace DocWright.Layout

Classes

FontPreflight

Surveys the distinct font families a resolved document references and runs them through a FontEngine's resolver, producing a FontPreflightReport. A caller can run this before paying for a full conversion to decide whether to install a font, accept the substitution, or abort. This mirrors the external preflight utility that commercial converters ship as a separate tool, here as a first-class API.

LayoutEngine

Lays out a resolved document into renderer-agnostic page primitives.

ResolveOptions

Options for one resolution pass.

ResolvedBlock

The base class of resolved block content.

ResolvedCharacterProperties

The fully-resolved formatting of a run: every value concrete, no style references, theme fonts and colors resolved, toggle XOR applied. Instances are immutable and shared across runs with identical formatting (the resolver memoizes them).

ResolvedColumns

The resolved column layout of a section.

ResolvedDocument

The immutable, fully-resolved projection of a document produced by StyleResolver: no style references, all lengths in twips, tracked changes collapsed. This — never the mutable DOM — is what layout consumes.

ResolvedDocumentDumper

Renders a ResolvedDocument as a deterministic, culture-independent text dump (LF line endings). Used by the approval-based snapshot tests — the values here are what Word's Reveal Formatting pane shows after resolution — and for debugging fidelity issues.

ResolvedDocumentSettings

Document-level resolved settings that layout consumes.

ResolvedHeaderFooter

Resolved header or footer content.

ResolvedImage

A resolved image: display size and anchoring in twips plus a data opener that streams the bytes from the source package on demand.

ResolvedNote

A resolved footnote or endnote body.

ResolvedNumbering

The numbering resolved for one paragraph: the effective level definition with overrides applied. Counter evaluation (the actual numbers) is a later phase.

ResolvedParagraph

A resolved paragraph: concrete properties, optional numbering, and resolved inlines with revisions collapsed and field code stripped (cached results kept).

ResolvedParagraphProperties

The fully-resolved formatting of a paragraph: concrete twips everywhere, tab clears applied, logical alignments mapped to physical.

ResolvedSection

A resolved section: concrete page geometry and the headers/footers that apply after section-to-section inheritance (§17.10.5).

ResolvedShape

A resolved shape or shape group: the same anchor geometry a ResolvedImage carries, plus the flattened parts to paint in order.

ResolvedShapePart

One paintable piece of a resolved shape tree. Groups, nested groups, child-space mapping, flips and rotation have all been flattened away by the resolver, so Segments are plain shape-local twips that layout only has to translate by the anchor origin.

ResolvedTable

A resolved table with conditional table-style formatting already applied to every row, cell and their content.

ResolvedTableCell

A resolved table cell with conditional formatting layered in.

ResolvedTableProperties

Resolved table-level properties.

ResolvedTableRow

A resolved table row.

StyleResolver

Projects the mutable DOM into an immutable ResolvedDocument — the one bridge between editing and layout, and it is one-way. Resolution order follows ECMA-376 §17.7.2: document defaults, table style layers (with §17.7.6 conditional formatting per w:tblLook), paragraph style chain, numbering level properties, character style chain, then direct formatting; toggle properties get §17.7.3 XOR semantics. Theme fonts and colors resolve to concrete values; tracked changes are collapsed per RevisionView.

ThemeColorTransforms

The color transforms WordprocessingML and DrawingML apply to theme colors. Word does NOT scale sRGB channels directly: w:themeTint and w:themeShade modulate luminance in HSL space with the result truncated per channel — verified against Word-written values (accent1 4472C4 with themeTint 99 yields 8EAADB, with themeShade BF yields 2F5496; see WORDQUIRKS.md).

Structs

ColumnSpecResolved

One explicit resolved column.

ResolvedBorder

A fully-resolved border edge: concrete style token, width, spacing and color. IsVisible is false when no border applies.

ResolvedInline

One resolved inline: a kind, the text (for text runs), the shared resolved run properties, and kind-specific payload.

ResolvedShading

Fully-resolved shading: concrete pattern token and colors.

ResolvedTabStop

A resolved tab stop: explicit stops only, sorted by position, clears already applied.

Enums

ResolvedInlineKind

What a resolved inline is.