This is the full developer documentation for Ream # Convert DOCX, XLSX, PPTX & PDF in the browser > Ream is a TypeScript library that converts Word, Excel, PowerPoint and PDF — including the legacy .doc / .xls / .ppt — to PDF, SVG, HTML, DOCX or XLSX, right in the browser. No LibreOffice, no headless Office. MIT TypeScript Browser · Node · Edge Read any office document.\ Convert it to anything. ======================= Ream parses Word, Excel, PowerPoint and PDF — including the legacy .doc / .xls / .ppt — and writes PDF, SVG, HTML, DOCX or XLSX. In the browser, straight from the ECMA-376 and ISO 32000 specifications. No LibreOffice, no headless Office, no commercial SDK. [Getting started ](/guides/getting-started/)[Try it in the browser ](/playground/)[View on GitHub](https://github.com/alex-krassavin/reamkit) Reads · seven formats in .docx .xlsx .pptx .pdf .doc .xls .ppt Ream.parse() → FlowDoc Writes · five formats out .pdf .svg .html .docx .xlsx ## Built from the spec, in the browser One parse, any target — the architecture in six pieces. ### From the spec Built directly from ECMA-376 (OOXML) and ISO 32000 / 19005 (PDF / PDF/A) — not a wrapper around LibreOffice, headless Office, or any commercial SDK. ### Browser-first Pure TypeScript on Uint8Array in and Uint8Array out — zero node:\* imports on the conversion path. The same code runs in the browser, Node, serverless and edge. ### Seven formats in The OOXML trio plus .pdf and the legacy binary .doc / .xls / .ppt (97–2003). DrawingML shapes, charts and OfficeMath throughout. ### Real typography Type0 + CIDFontType2 embedding with subsetting, Knuth–Plass line breaking, Liang hyphenation, OpenType ligatures and kerning, BiDi and Arabic joining. ### Compliant PDF PDF/A-1/2/3 (a/b/u) and PDF/UA-1 — all veraPDF-validated — plus tagged PDF, digital signatures and AES-256 encryption. ### One parse, any target Ream.parse(bytes) reads once into a format-neutral interlayer; convert renders PDF, SVG, HTML, DOCX or XLSX from it. Formats plug in as adapters. Questions, bug reports or collaboration — [Docs for AI: llms.txt](/llms.txt) Built from ECMA-376 & ISO 32000 # reamkit ## Modules [Section titled “Modules”](#modules) * [core/document-model](/api/core/document-model/) * [index](/api/index/) # core/document-model The typed document model — the OOXML-faithful node types (paragraphs, runs, tables, sections, drawings, charts, math) that the readers populate and the writers consume. Imported via the `reamkit/document-model` subpath. ## Interfaces [Section titled “Interfaces”](#interfaces) * [AbstractNumbering](/api/core/document-model/interfaces/abstractnumbering/) * [Border](/api/core/document-model/interfaces/border/) * [CellBorders](/api/core/document-model/interfaces/cellborders/) * [CellDataBar](/api/core/document-model/interfaces/celldatabar/) * [CellIcon](/api/core/document-model/interfaces/cellicon/) * [CellMargins](/api/core/document-model/interfaces/cellmargins/) * [CellProperties](/api/core/document-model/interfaces/cellproperties/) * [CellShading](/api/core/document-model/interfaces/cellshading/) * [CellSparkline](/api/core/document-model/interfaces/cellsparkline/) * [Chart](/api/core/document-model/interfaces/chart/) * [ChartBlock](/api/core/document-model/interfaces/chartblock/) * [ChartDataPoint](/api/core/document-model/interfaces/chartdatapoint/) * [ChartSeries](/api/core/document-model/interfaces/chartseries/) * [Comment](/api/core/document-model/interfaces/comment/) * [CustomGeometry](/api/core/document-model/interfaces/customgeometry/) * [DocumentModel](/api/core/document-model/interfaces/documentmodel/) * [FloatAnchor](/api/core/document-model/interfaces/floatanchor/) * [FontFamilyMap](/api/core/document-model/interfaces/fontfamilymap/) * [HeaderFooterReference](/api/core/document-model/interfaces/headerfooterreference/) * [ImageBlock](/api/core/document-model/interfaces/imageblock/) * [InlineImage](/api/core/document-model/interfaces/inlineimage/) * [MathAccent](/api/core/document-model/interfaces/mathaccent/) * [MathBar](/api/core/document-model/interfaces/mathbar/) * [MathDelimiter](/api/core/document-model/interfaces/mathdelimiter/) * [MathEqArray](/api/core/document-model/interfaces/matheqarray/) * [MathFraction](/api/core/document-model/interfaces/mathfraction/) * [MathFunc](/api/core/document-model/interfaces/mathfunc/) * [MathGroupChr](/api/core/document-model/interfaces/mathgroupchr/) * [MathLimit](/api/core/document-model/interfaces/mathlimit/) * [MathMatrix](/api/core/document-model/interfaces/mathmatrix/) * [MathNary](/api/core/document-model/interfaces/mathnary/) * [MathRadical](/api/core/document-model/interfaces/mathradical/) * [MathRow](/api/core/document-model/interfaces/mathrow/) * [MathRun](/api/core/document-model/interfaces/mathrun/) * [MathScript](/api/core/document-model/interfaces/mathscript/) * [Numbering](/api/core/document-model/interfaces/numbering/) * [NumberingInstance](/api/core/document-model/interfaces/numberinginstance/) * [NumberingLevel](/api/core/document-model/interfaces/numberinglevel/) * [NumberingReference](/api/core/document-model/interfaces/numberingreference/) * [PageMargins](/api/core/document-model/interfaces/pagemargins/) * [PageSize](/api/core/document-model/interfaces/pagesize/) * [Paragraph](/api/core/document-model/interfaces/paragraph/) * [ParagraphProperties](/api/core/document-model/interfaces/paragraphproperties/) * [RowProperties](/api/core/document-model/interfaces/rowproperties/) * [Run](/api/core/document-model/interfaces/run/) * [RunProperties](/api/core/document-model/interfaces/runproperties/) * [Section](/api/core/document-model/interfaces/section/) * [SectionColumns](/api/core/document-model/interfaces/sectioncolumns/) * [SectionProperties](/api/core/document-model/interfaces/sectionproperties/) * [ShapeBlock](/api/core/document-model/interfaces/shapeblock/) * [ShapeFill](/api/core/document-model/interfaces/shapefill/) * [ShapeGeometry](/api/core/document-model/interfaces/shapegeometry/) * [ShapeLine](/api/core/document-model/interfaces/shapeline/) * [ShapeTextBody](/api/core/document-model/interfaces/shapetextbody/) * [ShapeTransform](/api/core/document-model/interfaces/shapetransform/) * [Style](/api/core/document-model/interfaces/style/) * [StyleSheet](/api/core/document-model/interfaces/stylesheet/) * [Table](/api/core/document-model/interfaces/table/) * [TableCell](/api/core/document-model/interfaces/tablecell/) * [TableLook](/api/core/document-model/interfaces/tablelook/) * [TableProperties](/api/core/document-model/interfaces/tableproperties/) * [TableRow](/api/core/document-model/interfaces/tablerow/) * [TableStyleCondition](/api/core/document-model/interfaces/tablestylecondition/) * [TableStyleLayer](/api/core/document-model/interfaces/tablestylelayer/) ## Type Aliases [Section titled “Type Aliases”](#type-aliases) * [Alignment](/api/core/document-model/type-aliases/alignment/) * [BodyElement](/api/core/document-model/type-aliases/bodyelement/) * [BorderStyle](/api/core/document-model/type-aliases/borderstyle/) * [CellIconShape](/api/core/document-model/type-aliases/celliconshape/) * [CellMerge](/api/core/document-model/type-aliases/cellmerge/) * [ChartType](/api/core/document-model/type-aliases/charttype/) * [CustomPathCmd](/api/core/document-model/type-aliases/custompathcmd/) * [HeaderFooterType](/api/core/document-model/type-aliases/headerfootertype/) * [MathNode](/api/core/document-model/type-aliases/mathnode/) * [NumberingFormat](/api/core/document-model/type-aliases/numberingformat/) * [ShapeDash](/api/core/document-model/type-aliases/shapedash/) * [ShapeFillKind](/api/core/document-model/type-aliases/shapefillkind/) * [StyleType](/api/core/document-model/type-aliases/styletype/) * [TableStyleConditionType](/api/core/document-model/type-aliases/tablestyleconditiontype/) * [UnderlineStyle](/api/core/document-model/type-aliases/underlinestyle/) * [VerticalAlign](/api/core/document-model/type-aliases/verticalalign/) ## References [Section titled “References”](#references) ### DocumentInfo [Section titled “DocumentInfo”](#documentinfo) Re-exports [DocumentInfo](/api/index/interfaces/documentinfo/) # AbstractNumbering Defined in: [src/core/document-model/types.ts:394](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L394) §17.9.1 `w:abstractNum` — a reusable list definition keyed by level. ## Properties [Section titled “Properties”](#properties) ### id [Section titled “id”](#id) > `readonly` **id**: `string` Defined in: [src/core/document-model/types.ts:395](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L395) *** ### levels [Section titled “levels”](#levels) > `readonly` **levels**: `ReadonlyMap`<`number`, [`NumberingLevel`](/api/core/document-model/interfaces/numberinglevel/)> Defined in: [src/core/document-model/types.ts:396](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L396) # Border Defined in: [src/core/document-model/types.ts:487](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L487) One border edge: its line style plus optional width and colour. ## Properties [Section titled “Properties”](#properties) ### colorHex? [Section titled “colorHex?”](#colorhex) > `readonly` `optional` **colorHex?**: `string` Defined in: [src/core/document-model/types.ts:490](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L490) *** ### style [Section titled “style”](#style) > `readonly` **style**: [`BorderStyle`](/api/core/document-model/type-aliases/borderstyle/) Defined in: [src/core/document-model/types.ts:488](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L488) *** ### width? [Section titled “width?”](#width) > `readonly` `optional` **width?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:489](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L489) # CellBorders Defined in: [src/core/document-model/types.ts:494](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L494) §17.4.39 `w:tcBorders` — the per-edge borders of a cell (or table). ## Properties [Section titled “Properties”](#properties) ### bottom? [Section titled “bottom?”](#bottom) > `readonly` `optional` **bottom?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:497](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L497) *** ### diagonalDown? [Section titled “diagonalDown?”](#diagonaldown) > `readonly` `optional` **diagonalDown?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:505](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L505) Diagonal strokes across the cell box: `diagonalDown` runs top-left → bottom-right, `diagonalUp` bottom-left → top-right (Excel diagonal borders). *** ### diagonalUp? [Section titled “diagonalUp?”](#diagonalup) > `readonly` `optional` **diagonalUp?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:506](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L506) *** ### insideH? [Section titled “insideH?”](#insideh) > `readonly` `optional` **insideH?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:499](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L499) *** ### insideV? [Section titled “insideV?”](#insidev) > `readonly` `optional` **insideV?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:500](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L500) *** ### left? [Section titled “left?”](#left) > `readonly` `optional` **left?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:498](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L498) *** ### right? [Section titled “right?”](#right) > `readonly` `optional` **right?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:496](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L496) *** ### top? [Section titled “top?”](#top) > `readonly` `optional` **top?**: [`Border`](/api/core/document-model/interfaces/border/) Defined in: [src/core/document-model/types.ts:495](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L495) # CellDataBar Defined in: [src/core/document-model/types.ts:528](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L528) A conditional-format data bar: a horizontal bar of width `fraction` (`0..1` of the cell), painted over the shading and under the text (E-SHEET SC1c). It starts at `startFraction` from the cell’s left (default 0); a mixed-sign range puts the axis inside the cell so negative bars run left of it (tail TC4). ## Properties [Section titled “Properties”](#properties) ### colorHex [Section titled “colorHex”](#colorhex) > `readonly` **colorHex**: `string` Defined in: [src/core/document-model/types.ts:530](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L530) *** ### fraction [Section titled “fraction”](#fraction) > `readonly` **fraction**: `number` Defined in: [src/core/document-model/types.ts:529](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L529) *** ### startFraction? [Section titled “startFraction?”](#startfraction) > `readonly` `optional` **startFraction?**: `number` Defined in: [src/core/document-model/types.ts:531](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L531) # CellIcon Defined in: [src/core/document-model/types.ts:555](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L555) One resolved conditional-format icon: its [CellIconShape](/api/core/document-model/type-aliases/celliconshape/), colour and fill level. ## Properties [Section titled “Properties”](#properties) ### colorHex [Section titled “colorHex”](#colorhex) > `readonly` **colorHex**: `string` Defined in: [src/core/document-model/types.ts:557](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L557) *** ### fill? [Section titled “fill?”](#fill) > `readonly` `optional` **fill?**: `object` Defined in: [src/core/document-model/types.ts:562](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L562) Meter glyphs (`bars` / `pie`): how many of `levels` units are filled with `colorHex`; the rest are drawn in a neutral grey. Absent for single glyphs. #### filled [Section titled “filled”](#filled) > `readonly` **filled**: `number` #### levels [Section titled “levels”](#levels) > `readonly` **levels**: `number` *** ### shape [Section titled “shape”](#shape) > `readonly` **shape**: [`CellIconShape`](/api/core/document-model/type-aliases/celliconshape/) Defined in: [src/core/document-model/types.ts:556](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L556) # CellMargins Defined in: [src/core/document-model/types.ts:510](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L510) §17.4.42 `w:tcMar` — a cell’s inner padding per side. ## Properties [Section titled “Properties”](#properties) ### bottom? [Section titled “bottom?”](#bottom) > `readonly` `optional` **bottom?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:513](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L513) *** ### left? [Section titled “left?”](#left) > `readonly` `optional` **left?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:514](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L514) *** ### right? [Section titled “right?”](#right) > `readonly` `optional` **right?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:512](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L512) *** ### top? [Section titled “top?”](#top) > `readonly` `optional` **top?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:511](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L511) # CellProperties Defined in: [src/core/document-model/types.ts:591](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L591) §17.4.30 `w:tcPr` — a cell’s properties: span/merge, chrome, and CF overlays. ## Properties [Section titled “Properties”](#properties) ### borders? [Section titled “borders?”](#borders) > `readonly` `optional` **borders?**: [`CellBorders`](/api/core/document-model/interfaces/cellborders/) Defined in: [src/core/document-model/types.ts:595](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L595) *** ### colSpan? [Section titled “colSpan?”](#colspan) > `readonly` `optional` **colSpan?**: `number` Defined in: [src/core/document-model/types.ts:593](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L593) *** ### dataBar? [Section titled “dataBar?”](#databar) > `readonly` `optional` **dataBar?**: [`CellDataBar`](/api/core/document-model/interfaces/celldatabar/) Defined in: [src/core/document-model/types.ts:598](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L598) *** ### dropdown? [Section titled “dropdown?”](#dropdown) > `readonly` `optional` **dropdown?**: `boolean` Defined in: [src/core/document-model/types.ts:605](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L605) A data-validation `list` cell (E-SHEET SV1): the renderer paints an in-cell dropdown affordance at the cell’s right edge (a small button + ▾ glyph). *** ### icon? [Section titled “icon?”](#icon) > `readonly` `optional` **icon?**: [`CellIcon`](/api/core/document-model/interfaces/cellicon/) Defined in: [src/core/document-model/types.ts:599](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L599) *** ### margins? [Section titled “margins?”](#margins) > `readonly` `optional` **margins?**: [`CellMargins`](/api/core/document-model/interfaces/cellmargins/) Defined in: [src/core/document-model/types.ts:596](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L596) *** ### merge? [Section titled “merge?”](#merge) > `readonly` `optional` **merge?**: [`CellMerge`](/api/core/document-model/type-aliases/cellmerge/) Defined in: [src/core/document-model/types.ts:594](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L594) *** ### shading? [Section titled “shading?”](#shading) > `readonly` `optional` **shading?**: [`CellShading`](/api/core/document-model/interfaces/cellshading/) Defined in: [src/core/document-model/types.ts:597](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L597) *** ### sparkline? [Section titled “sparkline?”](#sparkline) > `readonly` `optional` **sparkline?**: [`CellSparkline`](/api/core/document-model/interfaces/cellsparkline/) Defined in: [src/core/document-model/types.ts:600](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L600) *** ### width? [Section titled “width?”](#width) > `readonly` `optional` **width?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:592](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L592) # CellShading Defined in: [src/core/document-model/types.ts:518](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L518) §17.4.33 `w:shd` — a cell’s solid background fill (6-hex). ## Properties [Section titled “Properties”](#properties) ### colorHex [Section titled “colorHex”](#colorhex) > `readonly` **colorHex**: `string` Defined in: [src/core/document-model/types.ts:519](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L519) # CellSparkline Defined in: [src/core/document-model/types.ts:570](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L570) A sparkline: a mini chart filling the cell, plotting `values` (E-SHEET SC2). Format-neutral — the xlsx layer resolves the data range to a value sequence; the layout renders line / column / win-loss geometry sized to the cell. ## Properties [Section titled “Properties”](#properties) ### colorHex? [Section titled “colorHex?”](#colorhex) > `readonly` `optional` **colorHex?**: `string` Defined in: [src/core/document-model/types.ts:577](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L577) *** ### kind [Section titled “kind”](#kind) > `readonly` **kind**: `"line"` | `"column"` | `"winLoss"` Defined in: [src/core/document-model/types.ts:571](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L571) *** ### values [Section titled “values”](#values) > `readonly` **values**: readonly (`number` | `null`)\[] Defined in: [src/core/document-model/types.ts:576](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L576) A blank/non-numeric cell in the range is a gap (`null`) so x-positions stay aligned: a line breaks across it, a column/win-loss skips its slot. # Chart Defined in: [src/core/document-model/types.ts:851](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L851) A parsed chart (§21.2): its type, title, categories, series and rendering options. ## Properties [Section titled “Properties”](#properties) ### barDir? [Section titled “barDir?”](#bardir) > `readonly` `optional` **barDir?**: `"bar"` | `"col"` Defined in: [src/core/document-model/types.ts:858](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L858) *** ### catAxisTitle? [Section titled “catAxisTitle?”](#cataxistitle) > `readonly` `optional` **catAxisTitle?**: `string` Defined in: [src/core/document-model/types.ts:862](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L862) *** ### categories [Section titled “categories”](#categories) > `readonly` **categories**: readonly `string`\[] Defined in: [src/core/document-model/types.ts:854](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L854) *** ### doughnut? [Section titled “doughnut?”](#doughnut) > `readonly` `optional` **doughnut?**: `boolean` Defined in: [src/core/document-model/types.ts:860](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L860) *** ### grouping? [Section titled “grouping?”](#grouping) > `readonly` `optional` **grouping?**: `"clustered"` | `"stacked"` | `"percentStacked"` | `"standard"` Defined in: [src/core/document-model/types.ts:859](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L859) *** ### hasLegend [Section titled “hasLegend”](#haslegend) > `readonly` **hasLegend**: `boolean` Defined in: [src/core/document-model/types.ts:856](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L856) *** ### legendPos? [Section titled “legendPos?”](#legendpos) > `readonly` `optional` **legendPos?**: `"r"` | `"l"` | `"t"` | `"b"` Defined in: [src/core/document-model/types.ts:857](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L857) *** ### series [Section titled “series”](#series) > `readonly` **series**: readonly [`ChartSeries`](/api/core/document-model/interfaces/chartseries/)\[] Defined in: [src/core/document-model/types.ts:855](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L855) *** ### seriesColorCycle? [Section titled “seriesColorCycle?”](#seriescolorcycle) > `readonly` `optional` **seriesColorCycle?**: readonly `string`\[] Defined in: [src/core/document-model/types.ts:868](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L868) MS-ODRAWXML `chartColorStyle` (`colorsN.xml`): the cycle of series colours; overrides the built-in Office accent cycle when present. *** ### showValues? [Section titled “showValues?”](#showvalues) > `readonly` `optional` **showValues?**: `boolean` Defined in: [src/core/document-model/types.ts:861](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L861) *** ### title? [Section titled “title?”](#title) > `readonly` `optional` **title?**: `string` Defined in: [src/core/document-model/types.ts:853](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L853) *** ### type [Section titled “type”](#type) > `readonly` **type**: [`ChartType`](/api/core/document-model/type-aliases/charttype/) Defined in: [src/core/document-model/types.ts:852](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L852) *** ### valAxisTitle? [Section titled “valAxisTitle?”](#valaxistitle) > `readonly` `optional` **valAxisTitle?**: `string` Defined in: [src/core/document-model/types.ts:863](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L863) # ChartBlock Defined in: [src/core/document-model/types.ts:872](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L872) A block-level chart reference (`c:chart`): its size and relationship id. ## Properties [Section titled “Properties”](#properties) ### altText? [Section titled “altText?”](#alttext) > `readonly` `optional` **altText?**: `string` Defined in: [src/core/document-model/types.ts:880](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L880) `wp:docPr @descr/@title` — alternate text for the tagged-PDF Figure (`/Alt`). *** ### chartRelId [Section titled “chartRelId”](#chartrelid) > `readonly` **chartRelId**: `string` Defined in: [src/core/document-model/types.ts:875](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L875) *** ### float? [Section titled “float?”](#float) > `readonly` `optional` **float?**: [`FloatAnchor`](/api/core/document-model/interfaces/floatanchor/) Defined in: [src/core/document-model/types.ts:874](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L874) §20.4.2.3 — present when the drawing is anchored (floating). *** ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:877](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L877) *** ### paragraphProperties [Section titled “paragraphProperties”](#paragraphproperties) > `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:878](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L878) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:876](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L876) # ChartDataPoint Defined in: [src/core/document-model/types.ts:836](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L836) A per-point colour override (`c:dPt`) at series index `idx`. ## Properties [Section titled “Properties”](#properties) ### colorHex [Section titled “colorHex”](#colorhex) > `readonly` **colorHex**: `string` Defined in: [src/core/document-model/types.ts:838](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L838) *** ### idx [Section titled “idx”](#idx) > `readonly` **idx**: `number` Defined in: [src/core/document-model/types.ts:837](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L837) # ChartSeries Defined in: [src/core/document-model/types.ts:842](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L842) One chart data series (`c:ser`): its name, values and colour overrides. ## Properties [Section titled “Properties”](#properties) ### colorHex? [Section titled “colorHex?”](#colorhex) > `readonly` `optional` **colorHex?**: `string` Defined in: [src/core/document-model/types.ts:846](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L846) *** ### name? [Section titled “name?”](#name) > `readonly` `optional` **name?**: `string` Defined in: [src/core/document-model/types.ts:843](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L843) *** ### pointColors? [Section titled “pointColors?”](#pointcolors) > `readonly` `optional` **pointColors?**: readonly [`ChartDataPoint`](/api/core/document-model/interfaces/chartdatapoint/)\[] Defined in: [src/core/document-model/types.ts:847](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L847) *** ### values [Section titled “values”](#values) > `readonly` **values**: readonly `number`\[] Defined in: [src/core/document-model/types.ts:844](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L844) *** ### xValues? [Section titled “xValues?”](#xvalues) > `readonly` `optional` **xValues?**: readonly `number`\[] Defined in: [src/core/document-model/types.ts:845](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L845) # Comment Defined in: [src/core/document-model/types.ts:344](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L344) ECMA-376 Part 1 §17.13.4.2 `w:comment` — a review comment: its block content plus the author/date attribution. Anchored from a run’s `commentRef`. ## Properties [Section titled “Properties”](#properties) ### author? [Section titled “author?”](#author) > `readonly` `optional` **author?**: `string` Defined in: [src/core/document-model/types.ts:346](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L346) *** ### authorId? [Section titled “authorId?”](#authorid) > `readonly` `optional` **authorId?**: `string` Defined in: [src/core/document-model/types.ts:355](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L355) The author’s resolved identity (usually an email) from word/people.xml (`w15:person` → `w15:presenceInfo/@w15:userId`), matched on the author name. Absent when the file ships no people part or the author is not listed. *** ### content [Section titled “content”](#content) > `readonly` **content**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[] Defined in: [src/core/document-model/types.ts:345](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L345) *** ### date? [Section titled “date?”](#date) > `readonly` `optional` **date?**: `string` Defined in: [src/core/document-model/types.ts:349](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L349) Raw w:date timestamp (ISO 8601), as authored — not reformatted. *** ### done? [Section titled “done?”](#done) > `readonly` `optional` **done?**: `boolean` Defined in: [src/core/document-model/types.ts:363](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L363) w15:done — the comment thread was marked resolved. *** ### initials? [Section titled “initials?”](#initials) > `readonly` `optional` **initials?**: `string` Defined in: [src/core/document-model/types.ts:347](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L347) *** ### parentId? [Section titled “parentId?”](#parentid) > `readonly` `optional` **parentId?**: `string` Defined in: [src/core/document-model/types.ts:361](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L361) Microsoft commentsExtended (w15) — the id of the comment this one replies to, forming a thread. Set only when word/commentsExtended.xml links this comment’s paragraph to a parent (w15:paraIdParent). Top-level comments omit it. # CustomGeometry Defined in: [src/core/document-model/types.ts:743](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L743) §20.1.9.11 `custGeom` — a custom geometry: its path-space extent (`pathWidth`/`pathHeight`) and the [CustomPathCmd](/api/core/document-model/type-aliases/custompathcmd/) list that draws it. ## Properties [Section titled “Properties”](#properties) ### commands [Section titled “commands”](#commands) > `readonly` **commands**: readonly [`CustomPathCmd`](/api/core/document-model/type-aliases/custompathcmd/)\[] Defined in: [src/core/document-model/types.ts:746](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L746) *** ### pathHeight [Section titled “pathHeight”](#pathheight) > `readonly` **pathHeight**: `number` Defined in: [src/core/document-model/types.ts:745](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L745) *** ### pathWidth [Section titled “pathWidth”](#pathwidth) > `readonly` **pathWidth**: `number` Defined in: [src/core/document-model/types.ts:744](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L744) # DocumentModel Defined in: [src/core/document-model/types.ts:981](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L981) The parsed WordprocessingML document: body, stylesheet, numbering and section setup. ## Properties [Section titled “Properties”](#properties) ### body [Section titled “body”](#body) > `readonly` **body**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[] Defined in: [src/core/document-model/types.ts:982](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L982) *** ### numbering? [Section titled “numbering?”](#numbering) > `readonly` `optional` **numbering?**: [`Numbering`](/api/core/document-model/interfaces/numbering/) Defined in: [src/core/document-model/types.ts:984](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L984) *** ### section? [Section titled “section?”](#section) > `readonly` `optional` **section?**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/) Defined in: [src/core/document-model/types.ts:985](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L985) *** ### styleSheet [Section titled “styleSheet”](#stylesheet) > `readonly` **styleSheet**: [`StyleSheet`](/api/core/document-model/interfaces/stylesheet/) Defined in: [src/core/document-model/types.ts:983](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L983) # FloatAnchor Defined in: [src/core/document-model/types.ts:943](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L943) §20.4.2.3 `wp:anchor` — a floating drawing’s placement. v1 honours out-of-flow placement for wrap `'none'` (incl. `behindDoc`); the side-wrapping modes (square/tight/through) and `topAndBottom` stay in flow as blocks. ## Properties [Section titled “Properties”](#properties) ### behind? [Section titled “behind?”](#behind) > `readonly` `optional` **behind?**: `boolean` Defined in: [src/core/document-model/types.ts:945](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L945) *** ### posH? [Section titled “posH?”](#posh) > `readonly` `optional` **posH?**: `object` Defined in: [src/core/document-model/types.ts:946](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L946) #### align? [Section titled “align?”](#align) > `readonly` `optional` **align?**: `"right"` | `"left"` | `"center"` #### offsetPt? [Section titled “offsetPt?”](#offsetpt) > `readonly` `optional` **offsetPt?**: [`Pt`](/api/index/type-aliases/pt/) #### relativeFrom [Section titled “relativeFrom”](#relativefrom) > `readonly` **relativeFrom**: `"page"` | `"column"` | `"margin"` *** ### posV? [Section titled “posV?”](#posv) > `readonly` `optional` **posV?**: `object` Defined in: [src/core/document-model/types.ts:951](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L951) #### offsetPt? [Section titled “offsetPt?”](#offsetpt-1) > `readonly` `optional` **offsetPt?**: [`Pt`](/api/index/type-aliases/pt/) #### relativeFrom [Section titled “relativeFrom”](#relativefrom-1) > `readonly` **relativeFrom**: `"page"` | `"line"` | `"paragraph"` | `"margin"` *** ### wrap [Section titled “wrap”](#wrap) > `readonly` **wrap**: `"none"` | `"square"` | `"tight"` | `"through"` | `"topAndBottom"` Defined in: [src/core/document-model/types.ts:944](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L944) # FontFamilyMap Defined in: [src/core/document-model/types.ts:37](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L37) The four script slots of `w:rFonts` (§17.3.2.26). A character picks its font from the slot its Unicode range maps to (ASCII, high-ANSI, complex-script, East-Asian). ## Properties [Section titled “Properties”](#properties) ### ascii? [Section titled “ascii?”](#ascii) > `readonly` `optional` **ascii?**: `string` Defined in: [src/core/document-model/types.ts:38](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L38) *** ### cs? [Section titled “cs?”](#cs) > `readonly` `optional` **cs?**: `string` Defined in: [src/core/document-model/types.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L40) *** ### eastAsia? [Section titled “eastAsia?”](#eastasia) > `readonly` `optional` **eastAsia?**: `string` Defined in: [src/core/document-model/types.ts:41](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L41) *** ### hAnsi? [Section titled “hAnsi?”](#hansi) > `readonly` `optional` **hAnsi?**: `string` Defined in: [src/core/document-model/types.ts:39](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L39) # HeaderFooterReference Defined in: [src/core/document-model/types.ts:912](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L912) §17.10.5/§17.10.2 `w:headerReference`/`w:footerReference` — a typed rels pointer. ## Properties [Section titled “Properties”](#properties) ### relationshipId [Section titled “relationshipId”](#relationshipid) > `readonly` **relationshipId**: `string` Defined in: [src/core/document-model/types.ts:914](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L914) *** ### type [Section titled “type”](#type) > `readonly` **type**: [`HeaderFooterType`](/api/core/document-model/type-aliases/headerfootertype/) Defined in: [src/core/document-model/types.ts:913](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L913) # ImageBlock Defined in: [src/core/document-model/types.ts:689](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L689) ECMA-376 Part 1 §20.4.2.8 — a block-level image (`wp:inline` picture extent). EMU = English Metric Units: 914400 per inch (1 pt = 12700 EMU). ## Properties [Section titled “Properties”](#properties) ### altText? [Section titled “altText?”](#alttext) > `readonly` `optional` **altText?**: `string` Defined in: [src/core/document-model/types.ts:697](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L697) `wp:docPr @descr/@title` — alternate text for the tagged-PDF Figure (`/Alt`). *** ### float? [Section titled “float?”](#float) > `readonly` `optional` **float?**: [`FloatAnchor`](/api/core/document-model/interfaces/floatanchor/) Defined in: [src/core/document-model/types.ts:691](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L691) §20.4.2.3 — present when the drawing is anchored (floating). *** ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:694](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L694) *** ### paragraphProperties [Section titled “paragraphProperties”](#paragraphproperties) > `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:695](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L695) *** ### resource? [Section titled “resource?”](#resource) > `readonly` `optional` **resource?**: [`ResourceId`](/api/index/type-aliases/resourceid/) Defined in: [src/core/document-model/types.ts:692](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L692) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:693](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L693) # InlineImage Defined in: [src/core/document-model/types.ts:118](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L118) ECMA-376 §20.4.2.8 — `wp:inline` picture extent inside a `w:r`. Stored on [Run](/api/core/document-model/interfaces/run/) alongside (or instead of) `text` so layout can position the image as if it were a glyph in the line box. ## Properties [Section titled “Properties”](#properties) ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:125](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L125) *** ### resource? [Section titled “resource?”](#resource) > `readonly` `optional` **resource?**: [`ResourceId`](/api/index/type-aliases/resourceid/) Defined in: [src/core/document-model/types.ts:123](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L123) Content-addressed bytes in the document’s `ResourceStore`; absent when the source relationship did not resolve (the layout box still reserves space). *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:124](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L124) # MathAccent Defined in: [src/core/document-model/types.ts:233](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L233) `m:acc` — accent character over a base (hat, bar, vec, dot, tilde …). ## Properties [Section titled “Properties”](#properties) ### base [Section titled “base”](#base) > `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:236](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L236) *** ### char [Section titled “char”](#char) > `readonly` **char**: `string` Defined in: [src/core/document-model/types.ts:235](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L235) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"accent"` Defined in: [src/core/document-model/types.ts:234](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L234) # MathBar Defined in: [src/core/document-model/types.ts:240](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L240) `m:bar` — a bar above or below the base. ## Properties [Section titled “Properties”](#properties) ### base [Section titled “base”](#base) > `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:242](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L242) *** ### pos [Section titled “pos”](#pos) > `readonly` **pos**: `"top"` | `"bot"` Defined in: [src/core/document-model/types.ts:243](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L243) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"bar"` Defined in: [src/core/document-model/types.ts:241](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L241) # MathDelimiter Defined in: [src/core/document-model/types.ts:218](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L218) `m:d` — delimiters around one or more elements. ## Properties [Section titled “Properties”](#properties) ### begChr [Section titled “begChr”](#begchr) > `readonly` **begChr**: `string` Defined in: [src/core/document-model/types.ts:220](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L220) *** ### children [Section titled “children”](#children) > `readonly` **children**: readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[] Defined in: [src/core/document-model/types.ts:223](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L223) *** ### endChr [Section titled “endChr”](#endchr) > `readonly` **endChr**: `string` Defined in: [src/core/document-model/types.ts:221](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L221) *** ### sepChr? [Section titled “sepChr?”](#sepchr) > `readonly` `optional` **sepChr?**: `string` Defined in: [src/core/document-model/types.ts:222](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L222) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"delimiter"` Defined in: [src/core/document-model/types.ts:219](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L219) # MathEqArray Defined in: [src/core/document-model/types.ts:258](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L258) `m:eqArr` — an equation array: a stack of equations, each on its own line, left-aligned, the block vertically centred on the math axis. ## Properties [Section titled “Properties”](#properties) ### rows [Section titled “rows”](#rows) > `readonly` **rows**: readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[] Defined in: [src/core/document-model/types.ts:260](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L260) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"eqArr"` Defined in: [src/core/document-model/types.ts:259](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L259) # MathFraction Defined in: [src/core/document-model/types.ts:169](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L169) `m:f` — fraction. `barless` = `m:fPr/m:type val="noBar"`. ## Properties [Section titled “Properties”](#properties) ### barless? [Section titled “barless?”](#barless) > `readonly` `optional` **barless?**: `boolean` Defined in: [src/core/document-model/types.ts:173](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L173) *** ### den [Section titled “den”](#den) > `readonly` **den**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:172](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L172) *** ### num [Section titled “num”](#num) > `readonly` **num**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:171](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L171) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"fraction"` Defined in: [src/core/document-model/types.ts:170](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L170) # MathFunc Defined in: [src/core/document-model/types.ts:203](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L203) `m:func` — function application (sin x, …): a name applied to an argument. ## Properties [Section titled “Properties”](#properties) ### body [Section titled “body”](#body) > `readonly` **body**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:206](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L206) *** ### name [Section titled “name”](#name) > `readonly` **name**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:205](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L205) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"func"` Defined in: [src/core/document-model/types.ts:204](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L204) # MathGroupChr Defined in: [src/core/document-model/types.ts:247](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L247) `m:groupChr` — a grouping character (brace …) above or below the base. ## Properties [Section titled “Properties”](#properties) ### base [Section titled “base”](#base) > `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:250](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L250) *** ### char [Section titled “char”](#char) > `readonly` **char**: `string` Defined in: [src/core/document-model/types.ts:249](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L249) *** ### pos [Section titled “pos”](#pos) > `readonly` **pos**: `"top"` | `"bot"` Defined in: [src/core/document-model/types.ts:251](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L251) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"groupChr"` Defined in: [src/core/document-model/types.ts:248](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L248) # MathLimit Defined in: [src/core/document-model/types.ts:210](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L210) `m:limLow` / `m:limUpp` — a limit below/above the base. ## Properties [Section titled “Properties”](#properties) ### base [Section titled “base”](#base) > `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:212](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L212) *** ### lim [Section titled “lim”](#lim) > `readonly` **lim**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:213](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L213) *** ### pos [Section titled “pos”](#pos) > `readonly` **pos**: `"low"` | `"upp"` Defined in: [src/core/document-model/types.ts:214](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L214) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"limit"` Defined in: [src/core/document-model/types.ts:211](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L211) # MathMatrix Defined in: [src/core/document-model/types.ts:227](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L227) `m:m` — matrix of cells (rows × columns). ## Properties [Section titled “Properties”](#properties) ### rows [Section titled “rows”](#rows) > `readonly` **rows**: readonly readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[]\[] Defined in: [src/core/document-model/types.ts:229](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L229) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"matrix"` Defined in: [src/core/document-model/types.ts:228](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L228) # MathNary Defined in: [src/core/document-model/types.ts:193](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L193) `m:nary` — n-ary operator (∑ ∏ ∫ …) with optional sub/sup limits. ## Properties [Section titled “Properties”](#properties) ### body [Section titled “body”](#body) > `readonly` **body**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:196](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L196) *** ### limLoc? [Section titled “limLoc?”](#limloc) > `readonly` `optional` **limLoc?**: `"undOvr"` | `"subSup"` Defined in: [src/core/document-model/types.ts:199](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L199) *** ### op [Section titled “op”](#op) > `readonly` **op**: `string` Defined in: [src/core/document-model/types.ts:195](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L195) *** ### sub? [Section titled “sub?”](#sub) > `readonly` `optional` **sub?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:197](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L197) *** ### sup? [Section titled “sup?”](#sup) > `readonly` `optional` **sup?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:198](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L198) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"nary"` Defined in: [src/core/document-model/types.ts:194](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L194) # MathRadical Defined in: [src/core/document-model/types.ts:186](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L186) `m:rad` — radical with optional degree (`m:deg`). ## Properties [Section titled “Properties”](#properties) ### degree? [Section titled “degree?”](#degree) > `readonly` `optional` **degree?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:189](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L189) *** ### radicand [Section titled “radicand”](#radicand) > `readonly` **radicand**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:188](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L188) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"radical"` Defined in: [src/core/document-model/types.ts:187](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L187) # MathRow Defined in: [src/core/document-model/types.ts:151](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L151) A sequence of sibling nodes (`m:oMath`, `m:e`, `m:num`, `m:den`, `m:fName` …). ## Properties [Section titled “Properties”](#properties) ### children [Section titled “children”](#children) > `readonly` **children**: readonly [`MathNode`](/api/core/document-model/type-aliases/mathnode/)\[] Defined in: [src/core/document-model/types.ts:153](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L153) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"row"` Defined in: [src/core/document-model/types.ts:152](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L152) # MathRun Defined in: [src/core/document-model/types.ts:160](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L160) `m:r` / `m:t` — literal symbols. `italic`/`bold` come from `m:rPr`/`m:sty`; `nor` (normal text) forces upright. With none set, letters auto-italicise. ## Properties [Section titled “Properties”](#properties) ### bold? [Section titled “bold?”](#bold) > `readonly` `optional` **bold?**: `boolean` Defined in: [src/core/document-model/types.ts:164](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L164) *** ### italic? [Section titled “italic?”](#italic) > `readonly` `optional` **italic?**: `boolean` Defined in: [src/core/document-model/types.ts:163](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L163) *** ### nor? [Section titled “nor?”](#nor) > `readonly` `optional` **nor?**: `boolean` Defined in: [src/core/document-model/types.ts:165](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L165) *** ### text [Section titled “text”](#text) > `readonly` **text**: `string` Defined in: [src/core/document-model/types.ts:162](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L162) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"run"` Defined in: [src/core/document-model/types.ts:161](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L161) # MathScript Defined in: [src/core/document-model/types.ts:177](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L177) `m:sSup` / `m:sSub` / `m:sSubSup` / `m:sPre` (pre-scripts). ## Properties [Section titled “Properties”](#properties) ### base [Section titled “base”](#base) > `readonly` **base**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L179) *** ### pre? [Section titled “pre?”](#pre) > `readonly` `optional` **pre?**: `boolean` Defined in: [src/core/document-model/types.ts:182](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L182) *** ### sub? [Section titled “sub?”](#sub) > `readonly` `optional` **sub?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:180](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L180) *** ### sup? [Section titled “sup?”](#sup) > `readonly` `optional` **sup?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:181](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L181) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"script"` Defined in: [src/core/document-model/types.ts:178](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L178) # Numbering Defined in: [src/core/document-model/types.ts:406](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L406) The parsed `word/numbering.xml`: abstract definitions + their instances. ## Properties [Section titled “Properties”](#properties) ### abstractNums [Section titled “abstractNums”](#abstractnums) > `readonly` **abstractNums**: `ReadonlyMap`<`string`, [`AbstractNumbering`](/api/core/document-model/interfaces/abstractnumbering/)> Defined in: [src/core/document-model/types.ts:407](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L407) *** ### numInstances [Section titled “numInstances”](#numinstances) > `readonly` **numInstances**: `ReadonlyMap`<`string`, [`NumberingInstance`](/api/core/document-model/interfaces/numberinginstance/)> Defined in: [src/core/document-model/types.ts:408](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L408) # NumberingInstance Defined in: [src/core/document-model/types.ts:400](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L400) §17.9.18 `w:num` — a concrete list instance bound to an [AbstractNumbering](/api/core/document-model/interfaces/abstractnumbering/). ## Properties [Section titled “Properties”](#properties) ### abstractNumId [Section titled “abstractNumId”](#abstractnumid) > `readonly` **abstractNumId**: `string` Defined in: [src/core/document-model/types.ts:402](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L402) *** ### numId [Section titled “numId”](#numid) > `readonly` **numId**: `string` Defined in: [src/core/document-model/types.ts:401](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L401) # NumberingLevel Defined in: [src/core/document-model/types.ts:383](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L383) One level of an abstract numbering definition (`w:lvl`): its format and chrome. ## Properties [Section titled “Properties”](#properties) ### format [Section titled “format”](#format) > `readonly` **format**: [`NumberingFormat`](/api/core/document-model/type-aliases/numberingformat/) Defined in: [src/core/document-model/types.ts:386](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L386) *** ### ilvl [Section titled “ilvl”](#ilvl) > `readonly` **ilvl**: `number` Defined in: [src/core/document-model/types.ts:384](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L384) *** ### lvlText [Section titled “lvlText”](#lvltext) > `readonly` **lvlText**: `string` Defined in: [src/core/document-model/types.ts:388](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L388) §17.9.11 `w:lvlText` — the marker template (e.g. `"%1."`). *** ### paragraphProperties [Section titled “paragraphProperties”](#paragraphproperties) > `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:389](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L389) *** ### runProperties [Section titled “runProperties”](#runproperties) > `readonly` **runProperties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/) Defined in: [src/core/document-model/types.ts:390](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L390) *** ### start [Section titled “start”](#start) > `readonly` **start**: `number` Defined in: [src/core/document-model/types.ts:385](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L385) # NumberingReference Defined in: [src/core/document-model/types.ts:377](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L377) A paragraph’s list reference (`w:numPr`): the numbering instance id + level. ## Properties [Section titled “Properties”](#properties) ### ilvl [Section titled “ilvl”](#ilvl) > `readonly` **ilvl**: `number` Defined in: [src/core/document-model/types.ts:379](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L379) *** ### numId [Section titled “numId”](#numid) > `readonly` **numId**: `string` Defined in: [src/core/document-model/types.ts:378](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L378) # PageMargins Defined in: [src/core/document-model/types.ts:899](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L899) §17.6.11 `w:pgMar` — the section’s page margins (and header/footer offsets). ## Properties [Section titled “Properties”](#properties) ### bottom [Section titled “bottom”](#bottom) > `readonly` **bottom**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:902](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L902) *** ### footer? [Section titled “footer?”](#footer) > `readonly` `optional` **footer?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:905](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L905) *** ### header? [Section titled “header?”](#header) > `readonly` `optional` **header?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:904](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L904) *** ### left [Section titled “left”](#left) > `readonly` **left**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:903](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L903) *** ### right [Section titled “right”](#right) > `readonly` **right**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:901](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L901) *** ### top [Section titled “top”](#top) > `readonly` **top**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:900](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L900) # PageSize Defined in: [src/core/document-model/types.ts:892](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L892) ECMA-376 Part 1 §17.6.13 `w:pgSz` — the section’s page dimensions + orientation. ## Properties [Section titled “Properties”](#properties) ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:894](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L894) *** ### orientation? [Section titled “orientation?”](#orientation) > `readonly` `optional` **orientation?**: `"portrait"` | `"landscape"` Defined in: [src/core/document-model/types.ts:895](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L895) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:893](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L893) # Paragraph Defined in: [src/core/document-model/types.ts:328](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L328) ECMA-376 Part 1 §17.3.1 — a paragraph: its [ParagraphProperties](/api/core/document-model/interfaces/paragraphproperties/) and runs. ## Properties [Section titled “Properties”](#properties) ### bookmarks? [Section titled “bookmarks?”](#bookmarks) > `readonly` `optional` **bookmarks?**: readonly `string`\[] Defined in: [src/core/document-model/types.ts:337](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L337) §17.13.6.2 `w:bookmarkStart` — names of bookmarks opening in (or immediately before) this paragraph. Paragraph-level v1: the destination is the paragraph’s first line. *** ### native? [Section titled “native?”](#native) > `readonly` `optional` **native?**: [`NativeBag`](/api/index/interfaces/nativebag/) Defined in: [src/core/document-model/types.ts:329](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L329) *** ### properties [Section titled “properties”](#properties-1) > `readonly` **properties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:330](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L330) *** ### runs [Section titled “runs”](#runs) > `readonly` **runs**: readonly [`Run`](/api/core/document-model/interfaces/run/)\[] Defined in: [src/core/document-model/types.ts:331](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L331) # ParagraphProperties Defined in: [src/core/document-model/types.ts:83](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L83) ECMA-376 Part 1 §17.3.1 — Paragraph Properties (`pPr`). All lengths in canonical Pt (converted from twips by the parser); all fields optional for cascade inheritance. `indentFirstLine` encodes both `` (positive value) and `` (stored as the negative twips, so a hanging indent of 360 twips becomes `indentFirstLine = -18pt` — the first line ends up 360 twips to the left of `indentLeft`). ## Properties [Section titled “Properties”](#properties) ### alignment? [Section titled “alignment?”](#alignment) > `readonly` `optional` **alignment?**: [`Alignment`](/api/core/document-model/type-aliases/alignment/) Defined in: [src/core/document-model/types.ts:85](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L85) *** ### bidi? [Section titled “bidi?”](#bidi) > `readonly` `optional` **bidi?**: `boolean` Defined in: [src/core/document-model/types.ts:105](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L105) ECMA-376 §17.3.1.6 — `w:bidi`. Sets the paragraph’s base direction to RTL, so the BiDi paragraph embedding level is 1 and default alignment is right. *** ### indentFirstLine? [Section titled “indentFirstLine?”](#indentfirstline) > `readonly` `optional` **indentFirstLine?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:92](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L92) *** ### indentLeft? [Section titled “indentLeft?”](#indentleft) > `readonly` `optional` **indentLeft?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:90](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L90) *** ### indentRight? [Section titled “indentRight?”](#indentright) > `readonly` `optional` **indentRight?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:91](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L91) *** ### numbering? [Section titled “numbering?”](#numbering) > `readonly` `optional` **numbering?**: [`NumberingReference`](/api/core/document-model/interfaces/numberingreference/) Defined in: [src/core/document-model/types.ts:95](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L95) *** ### outlineLevel? [Section titled “outlineLevel?”](#outlinelevel) > `readonly` `optional` **outlineLevel?**: `number` Defined in: [src/core/document-model/types.ts:110](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L110) ECMA-376 §17.3.1.20 — `w:outlineLvl`. Outline level 0–8 maps to Heading 1–9; 9 (or absent) is body text. Drives tagged-PDF heading structure (H1–H6). *** ### pageBreakBefore? [Section titled “pageBreakBefore?”](#pagebreakbefore) > `readonly` `optional` **pageBreakBefore?**: `boolean` Defined in: [src/core/document-model/types.ts:100](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L100) ECMA-376 Part 1 §17.3.1.21 — `w:pageBreakBefore`. When true, the paragraph starts on a fresh page even if there is room on the current one. *** ### runProperties? [Section titled “runProperties?”](#runproperties) > `readonly` `optional` **runProperties?**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/) Defined in: [src/core/document-model/types.ts:94](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L94) The implicit default run properties for runs in this paragraph (`w:pPr/w:rPr`). *** ### spacingAfter? [Section titled “spacingAfter?”](#spacingafter) > `readonly` `optional` **spacingAfter?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:87](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L87) *** ### spacingBefore? [Section titled “spacingBefore?”](#spacingbefore) > `readonly` `optional` **spacingBefore?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:86](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L86) *** ### spacingLine? [Section titled “spacingLine?”](#spacingline) > `readonly` `optional` **spacingLine?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:88](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L88) *** ### spacingLineRule? [Section titled “spacingLineRule?”](#spacinglinerule) > `readonly` `optional` **spacingLineRule?**: `"auto"` | `"exact"` | `"atLeast"` Defined in: [src/core/document-model/types.ts:89](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L89) *** ### styleId? [Section titled “styleId?”](#styleid) > `readonly` `optional` **styleId?**: `string` Defined in: [src/core/document-model/types.ts:84](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L84) # RowProperties Defined in: [src/core/document-model/types.ts:609](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L609) §17.4.81 `w:trPr` — a table row’s properties: height, split/header flags. ## Properties [Section titled “Properties”](#properties) ### cantSplit? [Section titled “cantSplit?”](#cantsplit) > `readonly` `optional` **cantSplit?**: `boolean` Defined in: [src/core/document-model/types.ts:612](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L612) *** ### height? [Section titled “height?”](#height) > `readonly` `optional` **height?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:610](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L610) *** ### heightRule? [Section titled “heightRule?”](#heightrule) > `readonly` `optional` **heightRule?**: `"auto"` | `"exact"` | `"atLeast"` Defined in: [src/core/document-model/types.ts:611](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L611) *** ### isHeader? [Section titled “isHeader?”](#isheader) > `readonly` `optional` **isHeader?**: `boolean` Defined in: [src/core/document-model/types.ts:613](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L613) *** ### pageBreakBefore? [Section titled “pageBreakBefore?”](#pagebreakbefore) > `readonly` `optional` **pageBreakBefore?**: `boolean` Defined in: [src/core/document-model/types.ts:618](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L618) Force this row to begin a new page (xlsx manual ``). The renderer flushes the page before the row, then repeats any leading header rows. # Run Defined in: [src/core/document-model/types.ts:268](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L268) ECMA-376 Part 1 §17.3.2 — a run: a span of `text` (or an inline image / math object) sharing one set of [RunProperties](/api/core/document-model/interfaces/runproperties/), plus the reference markers (hyperlink, note, comment, page-number field) the layout acts on. ## Properties [Section titled “Properties”](#properties) ### anchor? [Section titled “anchor?”](#anchor) > `readonly` `optional` **anchor?**: `string` Defined in: [src/core/document-model/types.ts:292](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L292) §17.16.22 `w:hyperlink @w:anchor` — internal link target: a bookmark name in this document (never a URL — bypasses the scheme allowlist). *** ### commentRangeRefs? [Section titled “commentRangeRefs?”](#commentrangerefs) > `readonly` `optional` **commentRangeRefs?**: readonly `string`\[] Defined in: [src/core/document-model/types.ts:305](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L305) §17.13.4.3/4 `w:commentRangeStart`/`End` — the ids of the comment ranges this run falls inside (a run may be covered by several). Renderers highlight the covered span; the marker run (`commentRef`) sits at the range’s end. *** ### commentRef? [Section titled “commentRef?”](#commentref) > `readonly` `optional` **commentRef?**: `string` Defined in: [src/core/document-model/types.ts:299](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L299) §17.13.4.1 `w:commentReference` — the run anchors a review comment by id; the comment’s content/author live in `FlowDoc.comments`. *** ### endnoteRef? [Section titled “endnoteRef?”](#endnoteref) > `readonly` `optional` **endnoteRef?**: `string` Defined in: [src/core/document-model/types.ts:294](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L294) *** ### field? [Section titled “field?”](#field) > `readonly` `optional` **field?**: `"PAGE"` | `"NUMPAGES"` Defined in: [src/core/document-model/types.ts:284](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L284) §17.16.5.35 PAGE / §17.16.5.33 NUMPAGES — the run is a page-number field; `text` holds the source’s cached result. Header/footer rendering substitutes the real number per page; body rendering keeps the cache. *** ### footnoteRef? [Section titled “footnoteRef?”](#footnoteref) > `readonly` `optional` **footnoteRef?**: `string` Defined in: [src/core/document-model/types.ts:293](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L293) *** ### href? [Section titled “href?”](#href) > `readonly` `optional` **href?**: `string` Defined in: [src/core/document-model/types.ts:278](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L278) ECMA-376 §17.16.22 — the run sits inside a `w:hyperlink` whose `r:id` resolved to an external target. The URL is stored as written in the rels part; writers MUST pass it through the scheme allowlist (`core/links`) before emitting anything clickable. *** ### inlineImage? [Section titled “inlineImage?”](#inlineimage) > `readonly` `optional` **inlineImage?**: [`InlineImage`](/api/core/document-model/interfaces/inlineimage/) Defined in: [src/core/document-model/types.ts:317](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L317) When set, the run renders this image inline in the line; `text` is ignored. *** ### listMarker? [Section titled “listMarker?”](#listmarker) > `readonly` `optional` **listMarker?**: `true` Defined in: [src/core/document-model/types.ts:315](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L315) The run is a list-item marker materialized by `applyNumbering` (`"1."`, `"•"`). Tagged PDF wraps its glyphs in a Lbl structure element (§14.8.4.3.3). *** ### math? [Section titled “math?”](#math) > `readonly` `optional` **math?**: [`MathNode`](/api/core/document-model/type-aliases/mathnode/) Defined in: [src/core/document-model/types.ts:319](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L319) When set, the run is an inline OfficeMath object; `text` is ignored. *** ### native? [Section titled “native?”](#native) > `readonly` `optional` **native?**: [`NativeBag`](/api/index/interfaces/nativebag/) Defined in: [src/core/document-model/types.ts:269](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L269) *** ### noteNumber? [Section titled “noteNumber?”](#notenumber) > `readonly` `optional` **noteNumber?**: `true` Defined in: [src/core/document-model/types.ts:310](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L310) §17.11.13 `w:footnoteRef` / §17.11.5 `w:endnoteRef` — inside note content: render the OWNING note’s number here. *** ### pageBreak? [Section titled “pageBreak?”](#pagebreak) > `readonly` `optional` **pageBreak?**: `boolean` Defined in: [src/core/document-model/types.ts:324](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L324) ECMA-376 Part 1 §17.3.3.1 — `w:br w:type="page"`. A forced page break: the paragraph’s following content starts on a new page. *** ### properties [Section titled “properties”](#properties-1) > `readonly` **properties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/) Defined in: [src/core/document-model/types.ts:271](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L271) *** ### text [Section titled “text”](#text) > `readonly` **text**: `string` Defined in: [src/core/document-model/types.ts:270](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L270) # RunProperties Defined in: [src/core/document-model/types.ts:51](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L51) ECMA-376 Part 1 §17.3.2 — Run Properties (`rPr`). All fields optional so the cascade can inherit them (undefined = “inherit from parent in the style chain”). Boolean toggle properties follow §17.17.4: an absent `` means “inherit”; a present `` with no val (or val=true/1/on) means true; val=false/0/off means explicit false. ## Properties [Section titled “Properties”](#properties) ### bold? [Section titled “bold?”](#bold) > `readonly` `optional` **bold?**: `boolean` Defined in: [src/core/document-model/types.ts:53](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L53) *** ### colorHex? [Section titled “colorHex?”](#colorhex) > `readonly` `optional` **colorHex?**: `string` Defined in: [src/core/document-model/types.ts:58](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L58) *** ### fontFamily? [Section titled “fontFamily?”](#fontfamily) > `readonly` `optional` **fontFamily?**: [`FontFamilyMap`](/api/core/document-model/interfaces/fontfamilymap/) Defined in: [src/core/document-model/types.ts:59](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L59) *** ### fontSizePt? [Section titled “fontSizePt?”](#fontsizept) > `readonly` `optional` **fontSizePt?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:57](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L57) *** ### italic? [Section titled “italic?”](#italic) > `readonly` `optional` **italic?**: `boolean` Defined in: [src/core/document-model/types.ts:54](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L54) *** ### lang? [Section titled “lang?”](#lang) > `readonly` `optional` **lang?**: `string` Defined in: [src/core/document-model/types.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L70) ECMA-376 §17.3.2.20 — `w:lang @w:val` (e.g. `"en-US"`, `"ru-RU"`). Used for the tagged-PDF per-element `/Lang`; does not affect visual layout. *** ### rtl? [Section titled “rtl?”](#rtl) > `readonly` `optional` **rtl?**: `boolean` Defined in: [src/core/document-model/types.ts:65](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L65) ECMA-376 §17.3.2.30 — `w:rtl`. Marks the run as right-to-left, which seeds the BiDi algorithm with an R/AL bias even for neutral characters. *** ### strike? [Section titled “strike?”](#strike) > `readonly` `optional` **strike?**: `boolean` Defined in: [src/core/document-model/types.ts:56](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L56) *** ### styleId? [Section titled “styleId?”](#styleid) > `readonly` `optional` **styleId?**: `string` Defined in: [src/core/document-model/types.ts:52](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L52) *** ### underline? [Section titled “underline?”](#underline) > `readonly` `optional` **underline?**: [`UnderlineStyle`](/api/core/document-model/type-aliases/underlinestyle/) Defined in: [src/core/document-model/types.ts:55](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L55) *** ### verticalAlign? [Section titled “verticalAlign?”](#verticalalign) > `readonly` `optional` **verticalAlign?**: [`VerticalAlign`](/api/core/document-model/type-aliases/verticalalign/) Defined in: [src/core/document-model/types.ts:60](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L60) # Section Defined in: [src/core/document-model/types.ts:975](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L975) One section descriptor for a multi-section document (ECMA-376 §17.6.17). Each section’s `sectPr` lives either inside a paragraph’s `pPr` (mid-document break) or as the final child of `w:body` (final section). Records the properties and the upper-exclusive bound in `BodyElement[]` the section covers — section i applies to `body[sections[i-1].endIndex..sections[i].endIndex)`. ## Properties [Section titled “Properties”](#properties) ### endIndex [Section titled “endIndex”](#endindex) > `readonly` **endIndex**: `number` Defined in: [src/core/document-model/types.ts:977](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L977) *** ### properties [Section titled “properties”](#properties-1) > `readonly` **properties**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/) Defined in: [src/core/document-model/types.ts:976](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L976) # SectionColumns Defined in: [src/core/document-model/types.ts:961](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L961) §17.6.4 — column definitions: an equal-width `count` + gutter, or explicit per-column widths/gutters (`w:col` children). ## Properties [Section titled “Properties”](#properties) ### count [Section titled “count”](#count) > `readonly` **count**: `number` Defined in: [src/core/document-model/types.ts:962](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L962) *** ### explicit? [Section titled “explicit?”](#explicit) > `readonly` `optional` **explicit?**: readonly `object`\[] Defined in: [src/core/document-model/types.ts:964](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L964) *** ### spacePt [Section titled “spacePt”](#spacept) > `readonly` **spacePt**: `number` Defined in: [src/core/document-model/types.ts:963](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L963) # SectionProperties Defined in: [src/core/document-model/types.ts:918](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L918) §17.6.17 `w:sectPr` — a section’s page setup, header/footer refs and columns. ## Properties [Section titled “Properties”](#properties) ### columns? [Section titled “columns?”](#columns) > `readonly` `optional` **columns?**: [`SectionColumns`](/api/core/document-model/interfaces/sectioncolumns/) Defined in: [src/core/document-model/types.ts:935](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L935) §17.6.4 `w:cols` — multi-column section layout. *** ### evenAndOddHeaders? [Section titled “evenAndOddHeaders?”](#evenandoddheaders) > `readonly` `optional` **evenAndOddHeaders?**: `boolean` Defined in: [src/core/document-model/types.ts:933](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L933) ECMA-376 §17.15.1.36 — `w:evenAndOddHeaders` toggle in `word/settings.xml` (document-wide, not per-section). When true even-numbered pages use the `even` header/footer references. *** ### footers [Section titled “footers”](#footers) > `readonly` **footers**: readonly [`HeaderFooterReference`](/api/core/document-model/interfaces/headerfooterreference/)\[] Defined in: [src/core/document-model/types.ts:922](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L922) *** ### headers [Section titled “headers”](#headers) > `readonly` **headers**: readonly [`HeaderFooterReference`](/api/core/document-model/interfaces/headerfooterreference/)\[] Defined in: [src/core/document-model/types.ts:921](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L921) *** ### margins? [Section titled “margins?”](#margins) > `readonly` `optional` **margins?**: [`PageMargins`](/api/core/document-model/interfaces/pagemargins/) Defined in: [src/core/document-model/types.ts:920](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L920) *** ### pageSize? [Section titled “pageSize?”](#pagesize) > `readonly` `optional` **pageSize?**: [`PageSize`](/api/core/document-model/interfaces/pagesize/) Defined in: [src/core/document-model/types.ts:919](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L919) *** ### titlePg? [Section titled “titlePg?”](#titlepg) > `readonly` `optional` **titlePg?**: `boolean` Defined in: [src/core/document-model/types.ts:927](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L927) ECMA-376 §17.10.6 — `w:titlePg` toggle in `sectPr`. When true the first page of the section uses the `first` header/footer references. # ShapeBlock Defined in: [src/core/document-model/types.ts:810](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L810) A block-level DrawingML shape (§20.1): its size, [ShapeGeometry](/api/core/document-model/interfaces/shapegeometry/), fill, outline, transform and optional text body. A standalone shape carries the paragraph’s properties for block spacing / alignment, mirroring [ImageBlock](/api/core/document-model/interfaces/imageblock/). ## Properties [Section titled “Properties”](#properties) ### altText? [Section titled “altText?”](#alttext) > `readonly` `optional` **altText?**: `string` Defined in: [src/core/document-model/types.ts:822](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L822) `wp:docPr @descr/@title` — alternate text for the tagged-PDF Figure (`/Alt`). *** ### fill [Section titled “fill”](#fill) > `readonly` **fill**: [`ShapeFill`](/api/core/document-model/interfaces/shapefill/) Defined in: [src/core/document-model/types.ts:816](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L816) *** ### float? [Section titled “float?”](#float) > `readonly` `optional` **float?**: [`FloatAnchor`](/api/core/document-model/interfaces/floatanchor/) Defined in: [src/core/document-model/types.ts:812](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L812) §20.4.2.3 — present when the drawing is anchored (floating). *** ### geometry [Section titled “geometry”](#geometry) > `readonly` **geometry**: [`ShapeGeometry`](/api/core/document-model/interfaces/shapegeometry/) Defined in: [src/core/document-model/types.ts:815](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L815) *** ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:814](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L814) *** ### line? [Section titled “line?”](#line) > `readonly` `optional` **line?**: [`ShapeLine`](/api/core/document-model/interfaces/shapeline/) Defined in: [src/core/document-model/types.ts:817](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L817) *** ### paragraphProperties [Section titled “paragraphProperties”](#paragraphproperties) > `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:820](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L820) *** ### text? [Section titled “text?”](#text) > `readonly` `optional` **text?**: [`ShapeTextBody`](/api/core/document-model/interfaces/shapetextbody/) Defined in: [src/core/document-model/types.ts:819](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L819) *** ### transform? [Section titled “transform?”](#transform) > `readonly` `optional` **transform?**: [`ShapeTransform`](/api/core/document-model/interfaces/shapetransform/) Defined in: [src/core/document-model/types.ts:818](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L818) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:813](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L813) # ShapeFill Defined in: [src/core/document-model/types.ts:761](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L761) A shape’s fill: none, a solid colour, or a ShapeGradient. ## Properties [Section titled “Properties”](#properties) ### colorHex? [Section titled “colorHex?”](#colorhex) > `readonly` `optional` **colorHex?**: `string` Defined in: [src/core/document-model/types.ts:763](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L763) *** ### gradient? [Section titled “gradient?”](#gradient) > `readonly` `optional` **gradient?**: `ShapeGradient` Defined in: [src/core/document-model/types.ts:764](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L764) *** ### kind [Section titled “kind”](#kind) > `readonly` **kind**: [`ShapeFillKind`](/api/core/document-model/type-aliases/shapefillkind/) Defined in: [src/core/document-model/types.ts:762](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L762) # ShapeGeometry Defined in: [src/core/document-model/types.ts:750](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L750) §20.1.10.55 `prstGeom` / §20.1.9.11 `custGeom` — a shape’s geometry source. ## Properties [Section titled “Properties”](#properties) ### adjust? [Section titled “adjust?”](#adjust) > `readonly` `optional` **adjust?**: `ReadonlyMap`<`string`, `number`> Defined in: [src/core/document-model/types.ts:753](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L753) *** ### custom? [Section titled “custom?”](#custom) > `readonly` `optional` **custom?**: [`CustomGeometry`](/api/core/document-model/interfaces/customgeometry/) Defined in: [src/core/document-model/types.ts:754](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L754) *** ### kind [Section titled “kind”](#kind) > `readonly` **kind**: `"preset"` | `"custom"` Defined in: [src/core/document-model/types.ts:751](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L751) *** ### preset? [Section titled “preset?”](#preset) > `readonly` `optional` **preset?**: `string` Defined in: [src/core/document-model/types.ts:752](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L752) # ShapeLine Defined in: [src/core/document-model/types.ts:779](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L779) §20.1.2.2.24 `a:ln` — a shape’s outline (stroke). ## Properties [Section titled “Properties”](#properties) ### cap? [Section titled “cap?”](#cap) > `readonly` `optional` **cap?**: `"square"` | `"flat"` | `"round"` Defined in: [src/core/document-model/types.ts:783](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L783) *** ### colorHex? [Section titled “colorHex?”](#colorhex) > `readonly` `optional` **colorHex?**: `string` Defined in: [src/core/document-model/types.ts:781](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L781) *** ### dash? [Section titled “dash?”](#dash) > `readonly` `optional` **dash?**: [`ShapeDash`](/api/core/document-model/type-aliases/shapedash/) Defined in: [src/core/document-model/types.ts:782](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L782) *** ### fill? [Section titled “fill?”](#fill) > `readonly` `optional` **fill?**: `"none"` | `"solid"` Defined in: [src/core/document-model/types.ts:784](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L784) *** ### width? [Section titled “width?”](#width) > `readonly` `optional` **width?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:780](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L780) # ShapeTextBody Defined in: [src/core/document-model/types.ts:795](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L795) `wps:txbx` (`w:txbxContent`) + `wps:bodyPr` — text inside a shape. ## Properties [Section titled “Properties”](#properties) ### anchor? [Section titled “anchor?”](#anchor) > `readonly` `optional` **anchor?**: `"t"` | `"b"` | `"ctr"` Defined in: [src/core/document-model/types.ts:801](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L801) *** ### content [Section titled “content”](#content) > `readonly` **content**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[] Defined in: [src/core/document-model/types.ts:796](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L796) *** ### insetBottom? [Section titled “insetBottom?”](#insetbottom) > `readonly` `optional` **insetBottom?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:800](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L800) *** ### insetLeft? [Section titled “insetLeft?”](#insetleft) > `readonly` `optional` **insetLeft?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:797](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L797) *** ### insetRight? [Section titled “insetRight?”](#insetright) > `readonly` `optional` **insetRight?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:799](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L799) *** ### insetTop? [Section titled “insetTop?”](#insettop) > `readonly` `optional` **insetTop?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:798](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L798) # ShapeTransform Defined in: [src/core/document-model/types.ts:788](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L788) §20.1.7.6 `a:xfrm` — a shape’s rotation (1/60000°, clockwise) + flips. ## Properties [Section titled “Properties”](#properties) ### flipH? [Section titled “flipH?”](#fliph) > `readonly` `optional` **flipH?**: `boolean` Defined in: [src/core/document-model/types.ts:790](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L790) *** ### flipV? [Section titled “flipV?”](#flipv) > `readonly` `optional` **flipV?**: `boolean` Defined in: [src/core/document-model/types.ts:791](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L791) *** ### rotation60k? [Section titled “rotation60k?”](#rotation60k) > `readonly` `optional` **rotation60k?**: `number` Defined in: [src/core/document-model/types.ts:789](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L789) # Style Defined in: [src/core/document-model/types.ts:455](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L455) ECMA-376 §17.7 — one style definition: its id, category, `basedOn` parent, and the run/paragraph properties it contributes (plus the table-style layers for `type === 'table'`). ## Properties [Section titled “Properties”](#properties) ### basedOn? [Section titled “basedOn?”](#basedon) > `readonly` `optional` **basedOn?**: `string` Defined in: [src/core/document-model/types.ts:458](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L458) *** ### colBandSize? [Section titled “colBandSize?”](#colbandsize) > `readonly` `optional` **colBandSize?**: `number` Defined in: [src/core/document-model/types.ts:467](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L467) *** ### id [Section titled “id”](#id) > `readonly` **id**: `string` Defined in: [src/core/document-model/types.ts:456](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L456) *** ### isDefault [Section titled “isDefault”](#isdefault) > `readonly` **isDefault**: `boolean` Defined in: [src/core/document-model/types.ts:459](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L459) *** ### paragraphProperties [Section titled “paragraphProperties”](#paragraphproperties) > `readonly` **paragraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:461](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L461) *** ### rowBandSize? [Section titled “rowBandSize?”](#rowbandsize) > `readonly` `optional` **rowBandSize?**: `number` Defined in: [src/core/document-model/types.ts:466](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L466) `w:tblPr/w:tblStyleRowBandSize` / `ColBandSize` (default 1). *** ### runProperties [Section titled “runProperties”](#runproperties) > `readonly` **runProperties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/) Defined in: [src/core/document-model/types.ts:460](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L460) *** ### tableConditions? [Section titled “tableConditions?”](#tableconditions) > `readonly` `optional` **tableConditions?**: readonly [`TableStyleCondition`](/api/core/document-model/interfaces/tablestylecondition/)\[] Defined in: [src/core/document-model/types.ts:464](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L464) *** ### tableLayer? [Section titled “tableLayer?”](#tablelayer) > `readonly` `optional` **tableLayer?**: [`TableStyleLayer`](/api/core/document-model/interfaces/tablestylelayer/) Defined in: [src/core/document-model/types.ts:463](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L463) Table styles only (§17.7.6): the base layer and conditional overrides. *** ### type [Section titled “type”](#type) > `readonly` **type**: [`StyleType`](/api/core/document-model/type-aliases/styletype/) Defined in: [src/core/document-model/types.ts:457](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L457) # StyleSheet Defined in: [src/core/document-model/types.ts:475](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L475) The parsed `word/styles.xml`: document defaults (`docDefaults`) plus the styles map keyed by id. The cascade resolver merges these into the resolved property objects the renderer consumes. ## Properties [Section titled “Properties”](#properties) ### defaultParagraphProperties [Section titled “defaultParagraphProperties”](#defaultparagraphproperties) > `readonly` **defaultParagraphProperties**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:477](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L477) *** ### defaultRunProperties [Section titled “defaultRunProperties”](#defaultrunproperties) > `readonly` **defaultRunProperties**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/) Defined in: [src/core/document-model/types.ts:476](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L476) *** ### styles [Section titled “styles”](#styles) > `readonly` **styles**: `ReadonlyMap`<`string`, [`Style`](/api/core/document-model/interfaces/style/)> Defined in: [src/core/document-model/types.ts:478](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L478) # Table Defined in: [src/core/document-model/types.ts:678](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L678) §17.4.38 `w:tbl` — a table: its [TableProperties](/api/core/document-model/interfaces/tableproperties/), the `w:tblGrid` column widths (`grid`), and its rows. ## Properties [Section titled “Properties”](#properties) ### grid [Section titled “grid”](#grid) > `readonly` **grid**: readonly [`Pt`](/api/index/type-aliases/pt/)\[] Defined in: [src/core/document-model/types.ts:681](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L681) *** ### native? [Section titled “native?”](#native) > `readonly` `optional` **native?**: [`NativeBag`](/api/index/interfaces/nativebag/) Defined in: [src/core/document-model/types.ts:679](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L679) *** ### properties [Section titled “properties”](#properties-1) > `readonly` **properties**: [`TableProperties`](/api/core/document-model/interfaces/tableproperties/) Defined in: [src/core/document-model/types.ts:680](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L680) *** ### rows [Section titled “rows”](#rows) > `readonly` **rows**: readonly [`TableRow`](/api/core/document-model/interfaces/tablerow/)\[] Defined in: [src/core/document-model/types.ts:682](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L682) # TableCell Defined in: [src/core/document-model/types.ts:663](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L663) §17.4.66 `w:tc` — a table cell: its [CellProperties](/api/core/document-model/interfaces/cellproperties/) and block content. ## Properties [Section titled “Properties”](#properties) ### content [Section titled “content”](#content) > `readonly` **content**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[] Defined in: [src/core/document-model/types.ts:665](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L665) *** ### properties [Section titled “properties”](#properties-1) > `readonly` **properties**: [`CellProperties`](/api/core/document-model/interfaces/cellproperties/) Defined in: [src/core/document-model/types.ts:664](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L664) # TableLook Defined in: [src/core/document-model/types.ts:626](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L626) §17.4.62 `w:tblLook` — which of the table style’s conditional formats apply. Modern files carry explicit attributes; legacy files a hex bitmask (both parsed). Band flags are negative (“no band”) per the spec. ## Properties [Section titled “Properties”](#properties) ### firstColumn? [Section titled “firstColumn?”](#firstcolumn) > `readonly` `optional` **firstColumn?**: `boolean` Defined in: [src/core/document-model/types.ts:629](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L629) *** ### firstRow? [Section titled “firstRow?”](#firstrow) > `readonly` `optional` **firstRow?**: `boolean` Defined in: [src/core/document-model/types.ts:627](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L627) *** ### lastColumn? [Section titled “lastColumn?”](#lastcolumn) > `readonly` `optional` **lastColumn?**: `boolean` Defined in: [src/core/document-model/types.ts:630](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L630) *** ### lastRow? [Section titled “lastRow?”](#lastrow) > `readonly` `optional` **lastRow?**: `boolean` Defined in: [src/core/document-model/types.ts:628](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L628) *** ### noHBand? [Section titled “noHBand?”](#nohband) > `readonly` `optional` **noHBand?**: `boolean` Defined in: [src/core/document-model/types.ts:631](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L631) *** ### noVBand? [Section titled “noVBand?”](#novband) > `readonly` `optional` **noVBand?**: `boolean` Defined in: [src/core/document-model/types.ts:632](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L632) # TableProperties Defined in: [src/core/document-model/types.ts:636](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L636) §17.4.60 `w:tblPr` — a table’s properties: style ref, width/layout, chrome. ## Properties [Section titled “Properties”](#properties) ### alignment? [Section titled “alignment?”](#alignment) > `readonly` `optional` **alignment?**: `"right"` | `"left"` | `"center"` Defined in: [src/core/document-model/types.ts:653](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L653) ECMA-376 §17.4.27 (`w:jc`) / xlsx ``. Centers or right-aligns a table narrower than the content width; absent ⇒ left. *** ### borders? [Section titled “borders?”](#borders) > `readonly` `optional` **borders?**: [`CellBorders`](/api/core/document-model/interfaces/cellborders/) Defined in: [src/core/document-model/types.ts:648](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L648) *** ### defaultCellMargins? [Section titled “defaultCellMargins?”](#defaultcellmargins) > `readonly` `optional` **defaultCellMargins?**: [`CellMargins`](/api/core/document-model/interfaces/cellmargins/) Defined in: [src/core/document-model/types.ts:647](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L647) *** ### frozen? [Section titled “frozen?”](#frozen) > `readonly` `optional` **frozen?**: `object` Defined in: [src/core/document-model/types.ts:659](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L659) A sticky-pane hint from a frozen worksheet view (E-SHEET SE3): the first `rows` rows / `cols` columns stay pinned while the rest scrolls. Consumed only by the HTML writer (an interactive target); PDF/SVG ignore it. #### cols [Section titled “cols”](#cols) > `readonly` **cols**: `number` #### rows [Section titled “rows”](#rows) > `readonly` **rows**: `number` *** ### layout? [Section titled “layout?”](#layout) > `readonly` `optional` **layout?**: `"auto"` | `"fixed"` Defined in: [src/core/document-model/types.ts:646](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L646) *** ### look? [Section titled “look?”](#look) > `readonly` `optional` **look?**: [`TableLook`](/api/core/document-model/interfaces/tablelook/) Defined in: [src/core/document-model/types.ts:642](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L642) *** ### styleId? [Section titled “styleId?”](#styleid) > `readonly` `optional` **styleId?**: `string` Defined in: [src/core/document-model/types.ts:641](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L641) §17.7.6 — raw reference to a table style (resolved by the reader’s `resolveTableStyles` transform; round-trip material afterwards). *** ### widthFraction? [Section titled “widthFraction?”](#widthfraction) > `readonly` `optional` **widthFraction?**: `number` Defined in: [src/core/document-model/types.ts:644](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L644) *** ### widthPt? [Section titled “widthPt?”](#widthpt) > `readonly` `optional` **widthPt?**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/document-model/types.ts:643](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L643) *** ### widthType? [Section titled “widthType?”](#widthtype) > `readonly` `optional` **widthType?**: `"auto"` | `"dxa"` | `"pct"` | `"nil"` Defined in: [src/core/document-model/types.ts:645](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L645) # TableRow Defined in: [src/core/document-model/types.ts:669](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L669) §17.4.79 `w:tr` — a table row: its [RowProperties](/api/core/document-model/interfaces/rowproperties/) and cells. ## Properties [Section titled “Properties”](#properties) ### cells [Section titled “cells”](#cells) > `readonly` **cells**: readonly [`TableCell`](/api/core/document-model/interfaces/tablecell/)\[] Defined in: [src/core/document-model/types.ts:671](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L671) *** ### properties [Section titled “properties”](#properties-1) > `readonly` **properties**: [`RowProperties`](/api/core/document-model/interfaces/rowproperties/) Defined in: [src/core/document-model/types.ts:670](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L670) # TableStyleCondition Defined in: [src/core/document-model/types.ts:445](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L445) A conditional table-style override: the region `type` and the layer it applies. ## Properties [Section titled “Properties”](#properties) ### layer [Section titled “layer”](#layer) > `readonly` **layer**: [`TableStyleLayer`](/api/core/document-model/interfaces/tablestylelayer/) Defined in: [src/core/document-model/types.ts:447](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L447) *** ### type [Section titled “type”](#type) > `readonly` **type**: [`TableStyleConditionType`](/api/core/document-model/type-aliases/tablestyleconditiontype/) Defined in: [src/core/document-model/types.ts:446](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L446) # TableStyleLayer Defined in: [src/core/document-model/types.ts:420](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L420) §17.7.6 — one table-style formatting layer: the style’s own base layer (`w:style/tblPr` + `tcPr` + `rPr` + `pPr`) or one conditional override (`w:tblStylePr`). Borders come from `tblBorders` (table layer) or `tcBorders` (region layer) — whichever the layer carries. ## Properties [Section titled “Properties”](#properties) ### borders? [Section titled “borders?”](#borders) > `readonly` `optional` **borders?**: [`CellBorders`](/api/core/document-model/interfaces/cellborders/) Defined in: [src/core/document-model/types.ts:421](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L421) *** ### cellMargins? [Section titled “cellMargins?”](#cellmargins) > `readonly` `optional` **cellMargins?**: [`CellMargins`](/api/core/document-model/interfaces/cellmargins/) Defined in: [src/core/document-model/types.ts:422](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L422) *** ### paragraphProperties? [Section titled “paragraphProperties?”](#paragraphproperties) > `readonly` `optional` **paragraphProperties?**: [`ParagraphProperties`](/api/core/document-model/interfaces/paragraphproperties/) Defined in: [src/core/document-model/types.ts:425](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L425) *** ### runProperties? [Section titled “runProperties?”](#runproperties) > `readonly` `optional` **runProperties?**: [`RunProperties`](/api/core/document-model/interfaces/runproperties/) Defined in: [src/core/document-model/types.ts:424](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L424) *** ### shading? [Section titled “shading?”](#shading) > `readonly` `optional` **shading?**: [`CellShading`](/api/core/document-model/interfaces/cellshading/) Defined in: [src/core/document-model/types.ts:423](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L423) # Alignment > **Alignment** = `"left"` | `"right"` | `"center"` | `"both"` | `"distribute"` Defined in: [src/core/document-model/types.ts:15](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L15) Paragraph horizontal alignment (`w:jc`); `both` = justified. # BodyElement > **BodyElement** = { `kind`: `"paragraph"`; `paragraph`: [`Paragraph`](/api/core/document-model/interfaces/paragraph/); } | { `kind`: `"table"`; `table`: [`Table`](/api/core/document-model/interfaces/table/); } | { `image`: [`ImageBlock`](/api/core/document-model/interfaces/imageblock/); `kind`: `"image"`; } | { `kind`: `"shape"`; `shape`: [`ShapeBlock`](/api/core/document-model/interfaces/shapeblock/); } | { `chart`: [`ChartBlock`](/api/core/document-model/interfaces/chartblock/); `kind`: `"chart"`; } Defined in: [src/core/document-model/types.ts:884](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L884) One top-level body item: a discriminated union over the block kinds. # BorderStyle > **BorderStyle** = `"none"` | `"single"` | `"double"` | `"thick"` | `"dotted"` | `"dashed"` Defined in: [src/core/document-model/types.ts:484](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L484) §17.18.2 ST\_Border — a cell-border line style (the subset Ream renders). # CellIconShape > **CellIconShape** = `"circle"` | `"square"` | `"diamond"` | `"triangleUp"` | `"triangleDown"` | `"triangleRight"` | `"check"` | `"cross"` | `"exclamation"` | `"bars"` | `"pie"` Defined in: [src/core/document-model/types.ts:539](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L539) A conditional-format icon: a small glyph at the cell’s left, chosen by the value’s bucket (E-SHEET SC1c). Format-neutral — the xlsx layer maps Excel’s named icon families (3TrafficLights, 3Arrows, …) onto these shapes + colours. # CellMerge > **CellMerge** = `"start"` | `"middle"` | `"end"` Defined in: [src/core/document-model/types.ts:588](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L588) Resolved position of a cell in a vertical merge group (ECMA-376 §17.4.85 `vMerge` markers are resolved by the reader): `start` opens a group that at least one cell continues, `middle` / `end` are continuations; undefined = not merged. Continuation cells stay in their rows (they hold the column slot); writers that need an HTML-style rowSpan can derive it by counting a start’s middle/end run downwards. # ChartType > **ChartType** = `"bar"` | `"line"` | `"pie"` | `"area"` | `"scatter"` | `"unknown"` Defined in: [src/core/document-model/types.ts:833](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L833) ECMA-376 Part 1 §21.2 — the kind of a DrawingML chart. A chart is referenced from a `w:drawing` (`a:graphicData uri=…/chart` → `c:chart r:id`) and its data lives in a separate chart part (e.g. `word/charts/chart1.xml`). The parsed [Chart](/api/core/document-model/interfaces/chart/) is keyed by that relationship id and supplied to the renderer alongside the body (mirroring image bytes), so [ChartBlock](/api/core/document-model/interfaces/chartblock/) only carries the ref. # CustomPathCmd > **CustomPathCmd** = { `cmd`: `"move"`; `x`: `number`; `y`: `number`; } | { `cmd`: `"line"`; `x`: `number`; `y`: `number`; } | { `cmd`: `"cubic"`; `x`: `number`; `x1`: `number`; `x2`: `number`; `y`: `number`; `y1`: `number`; `y2`: `number`; } | { `cmd`: `"quad"`; `x`: `number`; `x1`: `number`; `y`: `number`; `y1`: `number`; } | { `cmd`: `"arc"`; `hR`: `number`; `stAng`: `number`; `swAng`: `number`; `wR`: `number`; } | { `cmd`: `"close"`; } Defined in: [src/core/document-model/types.ts:711](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L711) §20.1.10.55 prstGeom path command (custGeom ``), in path-space units (`a:path @w/@h`). `quad` is elevated to cubic at layout; `arc` uses the DrawingML angle convention (1/60000°, clockwise, y-down) and is converted to beziers by the geometry layer. # HeaderFooterType > **HeaderFooterType** = `"default"` | `"first"` | `"even"` Defined in: [src/core/document-model/types.ts:909](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L909) §17.10 — which page class a header/footer reference applies to. # MathNode > **MathNode** = [`MathRow`](/api/core/document-model/interfaces/mathrow/) | [`MathRun`](/api/core/document-model/interfaces/mathrun/) | [`MathFraction`](/api/core/document-model/interfaces/mathfraction/) | [`MathScript`](/api/core/document-model/interfaces/mathscript/) | [`MathRadical`](/api/core/document-model/interfaces/mathradical/) | [`MathNary`](/api/core/document-model/interfaces/mathnary/) | [`MathFunc`](/api/core/document-model/interfaces/mathfunc/) | [`MathLimit`](/api/core/document-model/interfaces/mathlimit/) | [`MathDelimiter`](/api/core/document-model/interfaces/mathdelimiter/) | [`MathMatrix`](/api/core/document-model/interfaces/mathmatrix/) | [`MathAccent`](/api/core/document-model/interfaces/mathaccent/) | [`MathBar`](/api/core/document-model/interfaces/mathbar/) | [`MathGroupChr`](/api/core/document-model/interfaces/mathgroupchr/) | [`MathEqArray`](/api/core/document-model/interfaces/matheqarray/) Defined in: [src/core/document-model/types.ts:134](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L134) ECMA-376 Part 1 §22 — OfficeMathML (OMML). A recursive math element tree. The union grows by milestone; the layout engine renders structural elements (fraction bars, radicals, big operators, stretchy delimiters) as vector paths and ordinary symbols as font glyphs. # NumberingFormat > **NumberingFormat** = `"decimal"` | `"lowerLetter"` | `"upperLetter"` | `"lowerRoman"` | `"upperRoman"` | `"bullet"` | `"none"` Defined in: [src/core/document-model/types.ts:367](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L367) ECMA-376 Part 1 §17.9 — `w:numFmt` list marker format. # ShapeDash > **ShapeDash** = `"solid"` | `"dot"` | `"dash"` | `"dashDot"` | `"lgDash"` | `"lgDashDot"` | `"sysDash"` | `"sysDot"` Defined in: [src/core/document-model/types.ts:768](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L768) §20.1.10.49 ST\_PresetLineDashVal — a shape outline’s preset dash pattern. # ShapeFillKind > **ShapeFillKind** = `"none"` | `"solid"` | `"gradient"` Defined in: [src/core/document-model/types.ts:758](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L758) A shape’s fill mode (`a:noFill`/`a:solidFill`/`a:gradFill`). # StyleType > **StyleType** = `"paragraph"` | `"character"` | `"table"` | `"numbering"` Defined in: [src/core/document-model/types.ts:412](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L412) ECMA-376 Part 1 §17.7 — `w:style @w:type` style category. # TableStyleConditionType > **TableStyleConditionType** = `"wholeTable"` | `"band1Vert"` | `"band2Vert"` | `"band1Horz"` | `"band2Horz"` | `"firstCol"` | `"lastCol"` | `"firstRow"` | `"lastRow"` | `"nwCell"` | `"neCell"` | `"swCell"` | `"seCell"` Defined in: [src/core/document-model/types.ts:429](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L429) §17.7.6.3 `w:tblStylePr @w:type` — the table regions a conditional layer targets. # UnderlineStyle > **UnderlineStyle** = `"none"` | `"single"` | `"double"` | `"thick"` | `"dotted"` | `"dottedHeavy"` | `"dash"` | `"dashHeavy"` | `"wave"` Defined in: [src/core/document-model/types.ts:18](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L18) Run underline style (ECMA-376 §17.18.99 ST\_Underline, the subset Ream renders). # VerticalAlign > **VerticalAlign** = `"baseline"` | `"superscript"` | `"subscript"` Defined in: [src/core/document-model/types.ts:30](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L30) Run vertical alignment (`w:vertAlign`): baseline or super/subscript. # index The public API for Ream. The package reads Word, Excel, PowerPoint and PDF — including the legacy `.doc` / `.xls` / `.ppt` — and converts any of them to PDF, SVG, HTML, DOCX or XLSX, implemented from the ECMA-376 and ISO 32000 specifications without wrapping LibreOffice, headless Office, or any commercial SDK. Typical use: ```ts 1 import { Ream } from 'reamkit'; 2 const doc = Ream.parse(bytes); // format sniffed 3 const pdf = await doc.convert('pdf'); // one parse, any target ``` Advanced consumers can build custom pipelines from the reader/writer interfaces, drive the layout engine directly via [renderStyledPdf](/api/index/functions/renderstyledpdf/), supply a hyphenator, or import the typed document model from the `reamkit/document-model` subpath. ## Classes [Section titled “Classes”](#classes) * [ConversionLossError](/api/index/classes/conversionlosserror/) * [FontRegistry](/api/index/classes/fontregistry/) * [Ream](/api/index/classes/ream/) * [ResourceStore](/api/index/classes/resourcestore/) ## Interfaces [Section titled “Interfaces”](#interfaces) * [BorderItem](/api/index/interfaces/borderitem/) * [Converter](/api/index/interfaces/converter/) * [ConvertOptions](/api/index/interfaces/convertoptions/) * [ConvertResult](/api/index/interfaces/convertresult/) * [CreateConverterOptions](/api/index/interfaces/createconverteroptions/) * [DocumentInfo](/api/index/interfaces/documentinfo/) * [DocumentReader](/api/index/interfaces/documentreader/) * [DocumentWriter](/api/index/interfaces/documentwriter/) * [FetchFontSetOptions](/api/index/interfaces/fetchfontsetoptions/) * [FillItem](/api/index/interfaces/fillitem/) * [FlowDoc](/api/index/interfaces/flowdoc/) * [FontBytesByVariant](/api/index/interfaces/fontbytesbyvariant/) * [FontProvider](/api/index/interfaces/fontprovider/) * [FontRequest](/api/index/interfaces/fontrequest/) * [Hyphenator](/api/index/interfaces/hyphenator/) * [HyphenatorOptions](/api/index/interfaces/hyphenatoroptions/) * [ImageItem](/api/index/interfaces/imageitem/) * [LaidOutDocument](/api/index/interfaces/laidoutdocument/) * [LaidOutPage](/api/index/interfaces/laidoutpage/) * [Loss](/api/index/interfaces/loss/) * [NativeBag](/api/index/interfaces/nativebag/) * [PageItemBase](/api/index/interfaces/pageitembase/) * [ParsedTtf](/api/index/interfaces/parsedttf/) * [PdfEncryptOptions](/api/index/interfaces/pdfencryptoptions/) * [PdfPermissions](/api/index/interfaces/pdfpermissions/) * [ReadOptions](/api/index/interfaces/readoptions/) * [ReadResult](/api/index/interfaces/readresult/) * [ReamConvertOptions](/api/index/interfaces/reamconvertoptions/) * [ReamParseOptions](/api/index/interfaces/reamparseoptions/) * [ShapeItem](/api/index/interfaces/shapeitem/) * [SignatureOptions](/api/index/interfaces/signatureoptions/) * [SignaturePlaceholder](/api/index/interfaces/signatureplaceholder/) * [SignerCredentials](/api/index/interfaces/signercredentials/) * [StyledRenderOptions](/api/index/interfaces/styledrenderoptions/) * [SvgWriteOptions](/api/index/interfaces/svgwriteoptions/) * [TextLineItem](/api/index/interfaces/textlineitem/) * [WriteOptions](/api/index/interfaces/writeoptions/) * [WriteResult](/api/index/interfaces/writeresult/) ## Type Aliases [Section titled “Type Aliases”](#type-aliases) * [FamilyKey](/api/index/type-aliases/familykey/) * [Feature](/api/index/type-aliases/feature/) * [FetchLike](/api/index/type-aliases/fetchlike/) * [FontAnswer](/api/index/type-aliases/fontanswer/) * [FontVariant](/api/index/type-aliases/fontvariant/) * [KnownFeature](/api/index/type-aliases/knownfeature/) * [LossReport](/api/index/type-aliases/lossreport/) * [LossSeverity](/api/index/type-aliases/lossseverity/) * [PageItem](/api/index/type-aliases/pageitem/) * [Pt](/api/index/type-aliases/pt/) * [ReamTarget](/api/index/type-aliases/reamtarget/) * [ResourceId](/api/index/type-aliases/resourceid/) * [SupportedLanguage](/api/index/type-aliases/supportedlanguage/) ## Variables [Section titled “Variables”](#variables) * [docxReader](/api/index/variables/docxreader/) * [docxWriter](/api/index/variables/docxwriter/) * [FEATURES](/api/index/variables/features/) * [htmlWriter](/api/index/variables/htmlwriter/) * [NO\_FONT](/api/index/variables/no_font/) * [svgWriter](/api/index/variables/svgwriter/) * [xlsxReader](/api/index/variables/xlsxreader/) ## Functions [Section titled “Functions”](#functions) * [callerFontProvider](/api/index/functions/callerfontprovider/) * [chainProviders](/api/index/functions/chainproviders/) * [createConverter](/api/index/functions/createconverter/) * [createHyphenator](/api/index/functions/createhyphenator/) * [createLanguageHyphenator](/api/index/functions/createlanguagehyphenator/) * [eighthPtToPt](/api/index/functions/eighthpttopt/) * [embeddedDocFontProvider](/api/index/functions/embeddeddocfontprovider/) * [emuToPt](/api/index/functions/emutopt/) * [fetchFontSet](/api/index/functions/fetchfontset/) * [formatLoss](/api/index/functions/formatloss/) * [getHyphenator](/api/index/functions/gethyphenator/) * [halfPtToPt](/api/index/functions/halfpttopt/) * [inchToPt](/api/index/functions/inchtopt/) * [isEmbeddingRestricted](/api/index/functions/isembeddingrestricted/) * [layoutStyledDocument](/api/index/functions/layoutstyleddocument/) * [localFontProvider](/api/index/functions/localfontprovider/) * [mmToPt](/api/index/functions/mmtopt/) * [parseTtf](/api/index/functions/parsettf/) * [pt](/api/index/functions/pt/) * [pxToPt](/api/index/functions/pxtopt/) * [readDocx](/api/index/functions/readdocx/) * [readOs2FsType](/api/index/functions/reados2fstype/) * [readXlsx](/api/index/functions/readxlsx/) * [remoteFontProvider](/api/index/functions/remotefontprovider/) * [renderStyledPdf](/api/index/functions/renderstyledpdf/) * [resolveFamilyKey](/api/index/functions/resolvefamilykey/) * [signPdf](/api/index/functions/signpdf/) * [splitPatternBundle](/api/index/functions/splitpatternbundle/) * [subsetTtf](/api/index/functions/subsetttf/) * [twipsToPt](/api/index/functions/twipstopt/) * [writeDocx](/api/index/functions/writedocx/) * [writeHtml](/api/index/functions/writehtml/) * [writeSvg](/api/index/functions/writesvg/) # ConversionLossError Defined in: [src/core/ir/loss.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L46) Thrown by strict-mode conversions on the first recorded loss. ## Extends [Section titled “Extends”](#extends) * `Error` ## Constructors [Section titled “Constructors”](#constructors) ### Constructor [Section titled “Constructor”](#constructor) > **new ConversionLossError**(`loss`): `ConversionLossError` Defined in: [src/core/ir/loss.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L48) #### Parameters [Section titled “Parameters”](#parameters) ##### loss [Section titled “loss”](#loss) [`Loss`](/api/index/interfaces/loss/) The first loss that tripped strict mode (retained on the error). #### Returns [Section titled “Returns”](#returns) `ConversionLossError` #### Overrides [Section titled “Overrides”](#overrides) `Error.constructor` ## Properties [Section titled “Properties”](#properties) ### cause? [Section titled “cause?”](#cause) > `optional` **cause?**: `unknown` Defined in: docs/node\_modules/typescript/lib/lib.es2022.error.d.ts:24 #### Inherited from [Section titled “Inherited from”](#inherited-from) `Error.cause` *** ### loss [Section titled “loss”](#loss-1) > `readonly` **loss**: [`Loss`](/api/index/interfaces/loss/) Defined in: [src/core/ir/loss.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L48) The first loss that tripped strict mode (retained on the error). *** ### message [Section titled “message”](#message) > **message**: `string` Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1075 #### Inherited from [Section titled “Inherited from”](#inherited-from-1) `Error.message` *** ### name [Section titled “name”](#name) > **name**: `string` Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1074 #### Inherited from [Section titled “Inherited from”](#inherited-from-2) `Error.name` *** ### stack? [Section titled “stack?”](#stack) > `optional` **stack?**: `string` Defined in: docs/node\_modules/typescript/lib/lib.es5.d.ts:1076 #### Inherited from [Section titled “Inherited from”](#inherited-from-3) `Error.stack` # FontRegistry Defined in: [src/core/font/font-registry.ts:54](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L54) A registry of parsed font variants. The renderer resolves a `(bold, italic)` request to the closest available face via pickVariant, degrading through `bold → italic → regular` when an exact match is missing. ## Methods [Section titled “Methods”](#methods) ### entries() [Section titled “entries()”](#entries) > **entries**(): `IterableIterator`<\[[`FontVariant`](/api/index/type-aliases/fontvariant/), [`ParsedTtf`](/api/index/interfaces/parsedttf/)]> Defined in: [src/core/font/font-registry.ts:88](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L88) Iterate the `[variant, parsed font]` pairs the registry holds. #### Returns [Section titled “Returns”](#returns) `IterableIterator`<\[[`FontVariant`](/api/index/type-aliases/fontvariant/), [`ParsedTtf`](/api/index/interfaces/parsedttf/)]> *** ### hasVariant() [Section titled “hasVariant()”](#hasvariant) > **hasVariant**(`v`): `boolean` Defined in: [src/core/font/font-registry.ts:93](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L93) Whether a given variant is present. #### Parameters [Section titled “Parameters”](#parameters) ##### v [Section titled “v”](#v) [`FontVariant`](/api/index/type-aliases/fontvariant/) #### Returns [Section titled “Returns”](#returns-1) `boolean` *** ### resolveByStyle() [Section titled “resolveByStyle()”](#resolvebystyle) > **resolveByStyle**(`bold`, `italic`): `object` Defined in: [src/core/font/font-registry.ts:80](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L80) Resolve a style request to the closest available face. #### Parameters [Section titled “Parameters”](#parameters-1) ##### bold [Section titled “bold”](#bold) `boolean` Whether bold was requested. ##### italic [Section titled “italic”](#italic) `boolean` Whether italic was requested. #### Returns [Section titled “Returns”](#returns-2) `object` The chosen variant and its parsed font. ##### parsed [Section titled “parsed”](#parsed) > **parsed**: [`ParsedTtf`](/api/index/interfaces/parsedttf/) ##### variant [Section titled “variant”](#variant) > **variant**: [`FontVariant`](/api/index/type-aliases/fontvariant/) #### Throws [Section titled “Throws”](#throws) Error when the registry has no usable (regular) font. *** ### fromBytes() [Section titled “fromBytes()”](#frombytes) > `static` **fromBytes**(`input`): `FontRegistry` Defined in: [src/core/font/font-registry.ts:63](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L63) Parse a set of font bytes into a registry. #### Parameters [Section titled “Parameters”](#parameters-2) ##### input [Section titled “input”](#input) [`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/) The bytes per variant (`regular` required). #### Returns [Section titled “Returns”](#returns-3) `FontRegistry` A registry holding the parsed faces. # Ream Defined in: [src/core/converter/ream.ts:122](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L122) The object face of the library: parse a document once into the format-neutral [FlowDoc](/api/index/interfaces/flowdoc/) interlayer, then convert it to any number of targets without re-reading the source. ```ts 1 const doc = Ream.parse(bytes); // sniff → reader → FlowDoc 2 const pdf = await doc.convert('pdf', { fonts }); 3 const svg = await doc.convert('svg', { fonts }); ``` It is a thin GRASP Controller: readers parse, `flowRenderOptions` projects the FlowDoc, and layout/emit plus the writers do the work. As a deliberate composition root, importing it pulls in every format module — prefer the per-format functions when bundle size matters more than convenience. The source bytes are retained only for the two source-touching features: docx substitute-font auto-detection and PDF/A-3 `embedSource`. ## Properties [Section titled “Properties”](#properties) ### flow [Section titled “flow”](#flow) > `readonly` **flow**: [`FlowDoc`](/api/index/interfaces/flowdoc/) Defined in: [src/core/converter/ream.ts:133](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L133) The interlayer — the parsed, format-neutral document tree. *** ### losses [Section titled “losses”](#losses) > `readonly` **losses**: readonly [`Loss`](/api/index/interfaces/loss/)\[] Defined in: [src/core/converter/ream.ts:135](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L135) Losses recorded while reading the source. *** ### sheet [Section titled “sheet”](#sheet) > `readonly` **sheet**: `SheetDoc` | `undefined` Defined in: [src/core/converter/ream.ts:134](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L134) The native SpreadsheetML tree when the source is a spreadsheet (xlsx); [Ream.flow](/api/index/classes/ream/#flow) is its projection through the print model. ## Accessors [Section titled “Accessors”](#accessors) ### format [Section titled “format”](#format) #### Get Signature [Section titled “Get Signature”](#get-signature) > **get** **format**(): `string` Defined in: [src/core/converter/ream.ts:165](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L165) The source format id (`'docx'`, `'xlsx'`, …). ##### Returns [Section titled “Returns”](#returns) `string` ## Methods [Section titled “Methods”](#methods) ### convert() [Section titled “convert()”](#convert) > **convert**(`to`, `options?`): `Promise`<`Uint8Array`<`ArrayBufferLike`>> Defined in: [src/core/converter/ream.ts:177](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L177) Convert the parsed document to `to` and return just the output bytes. A thin wrapper over [Ream.convertWithReport](/api/index/classes/ream/#convertwithreport) that drops the loss report. #### Parameters [Section titled “Parameters”](#parameters) ##### to [Section titled “to”](#to) [`ReamTarget`](/api/index/type-aliases/reamtarget/) The target format. ##### options? [Section titled “options?”](#options) [`ReamConvertOptions`](/api/index/interfaces/reamconvertoptions/) = `{}` Font resolution and target-specific options. #### Returns [Section titled “Returns”](#returns-1) `Promise`<`Uint8Array`<`ArrayBufferLike`>> The encoded output bytes. *** ### convertWithReport() [Section titled “convertWithReport()”](#convertwithreport) > **convertWithReport**(`to`, `options?`): `Promise`<[`ConvertResult`](/api/index/interfaces/convertresult/)> Defined in: [src/core/converter/ream.ts:194](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L194) Convert the parsed document to `to`, returning the output bytes together with the accumulated [Loss](/api/index/interfaces/loss/) report (read-time losses plus any added while writing). HTML, DOCX and XLSX are produced straight from the interlayer — no layout, no fonts, zero I/O; SVG and PDF run the layout engine and resolve fonts first. #### Parameters [Section titled “Parameters”](#parameters-1) ##### to [Section titled “to”](#to-1) [`ReamTarget`](/api/index/type-aliases/reamtarget/) The target format. `'xlsx'` requires a spreadsheet source. ##### options? [Section titled “options?”](#options-1) [`ReamConvertOptions`](/api/index/interfaces/reamconvertoptions/) = `{}` Font resolution and target-specific options. #### Returns [Section titled “Returns”](#returns-2) `Promise`<[`ConvertResult`](/api/index/interfaces/convertresult/)> The encoded bytes and the loss report. #### Throws [Section titled “Throws”](#throws) Error when `to` is `'xlsx'` but the source has no grid. #### Throws [Section titled “Throws”](#throws-1) ConversionLossError when `options.strict` is set and any loss was recorded. *** ### parse() [Section titled “parse()”](#parse) > `static` **parse**(`bytes`, `options?`): `Ream` Defined in: [src/core/converter/ream.ts:149](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L149) Sniff the format and parse the bytes once into the [FlowDoc](/api/index/interfaces/flowdoc/) interlayer. #### Parameters [Section titled “Parameters”](#parameters-2) ##### bytes [Section titled “bytes”](#bytes) `Uint8Array` The raw document bytes; the format is detected by sniffing. ##### options? [Section titled “options?”](#options-2) [`ReamParseOptions`](/api/index/interfaces/reamparseoptions/) = `{}` Optional reader-registry override and/or password for an encrypted source. #### Returns [Section titled “Returns”](#returns-3) `Ream` A reusable [Ream](/api/index/classes/ream/) instance. #### Throws [Section titled “Throws”](#throws-2) Error when no registered reader recognizes the bytes. # ResourceStore Defined in: [src/core/ir/resources.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L48) A content-addressed store for the IR’s binary payloads (images, fonts). IR trees stay pure JSON and reference bytes by [ResourceId](/api/index/type-aliases/resourceid/); ids derive from the bytes (a synchronous 64-bit FNV-1a), so identical payloads deduplicate for free and equal documents get equal ids — which keeps IR-level diffs and the byte-identical gates meaningful. ## Constructors [Section titled “Constructors”](#constructors) ### Constructor [Section titled “Constructor”](#constructor) > **new ResourceStore**(): `ResourceStore` #### Returns [Section titled “Returns”](#returns) `ResourceStore` ## Accessors [Section titled “Accessors”](#accessors) ### size [Section titled “size”](#size) #### Get Signature [Section titled “Get Signature”](#get-signature) > **get** **size**(): `number` Defined in: [src/core/ir/resources.ts:85](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L85) The number of distinct resources stored. ##### Returns [Section titled “Returns”](#returns-1) `number` ## Methods [Section titled “Methods”](#methods) ### get() [Section titled “get()”](#get) > **get**(`id`): `Uint8Array`<`ArrayBufferLike`> | `undefined` Defined in: [src/core/ir/resources.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L70) Look up the bytes for an id, or `undefined` when absent. #### Parameters [Section titled “Parameters”](#parameters) ##### id [Section titled “id”](#id) [`ResourceId`](/api/index/type-aliases/resourceid/) #### Returns [Section titled “Returns”](#returns-2) `Uint8Array`<`ArrayBufferLike`> | `undefined` *** ### has() [Section titled “has()”](#has) > **has**(`id`): `boolean` Defined in: [src/core/ir/resources.ts:75](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L75) Whether an id is present in the store. #### Parameters [Section titled “Parameters”](#parameters-1) ##### id [Section titled “id”](#id-1) [`ResourceId`](/api/index/type-aliases/resourceid/) #### Returns [Section titled “Returns”](#returns-3) `boolean` *** ### ids() [Section titled “ids()”](#ids) > **ids**(): readonly [`ResourceId`](/api/index/type-aliases/resourceid/)\[] Defined in: [src/core/ir/resources.ts:80](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L80) All stored ids, in insertion order. #### Returns [Section titled “Returns”](#returns-4) readonly [`ResourceId`](/api/index/type-aliases/resourceid/)\[] *** ### put() [Section titled “put()”](#put) > **put**(`bytes`): [`ResourceId`](/api/index/type-aliases/resourceid/) Defined in: [src/core/ir/resources.ts:56](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L56) Store bytes and return their content-addressed id. Re-putting identical bytes returns the existing id (deduplication); a hash collision with different bytes probes deterministic `~n` suffixes. #### Parameters [Section titled “Parameters”](#parameters-2) ##### bytes [Section titled “bytes”](#bytes) `Uint8Array` #### Returns [Section titled “Returns”](#returns-5) [`ResourceId`](/api/index/type-aliases/resourceid/) # callerFontProvider > **callerFontProvider**(`fonts`): [`FontProvider`](/api/index/interfaces/fontprovider/) Defined in: [src/core/fonts/provider.ts:76](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L76) Caller-supplied bytes — answers every family (the caller chose these fonts deliberately). Falls back through bold/italic → regular like the registry. ## Parameters [Section titled “Parameters”](#parameters) ### fonts [Section titled “fonts”](#fonts) [`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/) ## Returns [Section titled “Returns”](#returns) [`FontProvider`](/api/index/interfaces/fontprovider/) # chainProviders > **chainProviders**(`providers`): [`FontProvider`](/api/index/interfaces/fontprovider/) Defined in: [src/core/fonts/provider.ts:52](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L52) First byte-level answer wins; ‘none’ falls through to the next provider. ## Parameters [Section titled “Parameters”](#parameters) ### providers [Section titled “providers”](#providers) readonly [`FontProvider`](/api/index/interfaces/fontprovider/)\[] ## Returns [Section titled “Returns”](#returns) [`FontProvider`](/api/index/interfaces/fontprovider/) # createConverter > **createConverter**(`opts?`): [`Converter`](/api/index/interfaces/converter/) Defined in: [src/core/converter/facade.ts:140](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L140) Build a [Converter](/api/index/interfaces/converter/) over a reader registry. The async boundary (font fetching) lives here; readers and writers stay synchronous. ## Parameters [Section titled “Parameters”](#parameters) ### opts? [Section titled “opts?”](#opts) [`CreateConverterOptions`](/api/index/interfaces/createconverteroptions/) = `{}` Optional reader-registry override. ## Returns [Section titled “Returns”](#returns) [`Converter`](/api/index/interfaces/converter/) A converter exposing `readers`, `detect` and `convert`. # createHyphenator > **createHyphenator**(`patterns`, `options?`): [`Hyphenator`](/api/index/interfaces/hyphenator/) Defined in: [src/core/hyphenation/liang.ts:89](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L89) Build a Liang pattern-based [Hyphenator](/api/index/interfaces/hyphenator/) from a pattern list. ## Parameters [Section titled “Parameters”](#parameters) ### patterns [Section titled “patterns”](#patterns) readonly `string`\[] The TeX-style hyphenation patterns (e.g. `"hy3ph"`). ### options? [Section titled “options?”](#options) [`HyphenatorOptions`](/api/index/interfaces/hyphenatoroptions/) = `{}` Left/right minimums and explicit exceptions. ## Returns [Section titled “Returns”](#returns) [`Hyphenator`](/api/index/interfaces/hyphenator/) The hyphenator. # createLanguageHyphenator > **createLanguageHyphenator**(`language`, `bundle`): [`Hyphenator`](/api/index/interfaces/hyphenator/) Defined in: [src/core/hyphenation/index.ts:71](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/index.ts#L71) Synchronous variant of [getHyphenator](/api/index/functions/gethyphenator/): build a [Hyphenator](/api/index/interfaces/hyphenator/) from already-loaded pattern strings (useful when patterns are bundled or fetched out-of-band). ## Parameters [Section titled “Parameters”](#parameters) ### language [Section titled “language”](#language) [`SupportedLanguage`](/api/index/type-aliases/supportedlanguage/) The language (selects the left/right minimums). ### bundle [Section titled “bundle”](#bundle) The pattern and optional exception strings. #### exceptions? [Section titled “exceptions?”](#exceptions) `string` #### patterns [Section titled “patterns”](#patterns) `string` ## Returns [Section titled “Returns”](#returns) [`Hyphenator`](/api/index/interfaces/hyphenator/) The hyphenator. # eighthPtToPt > **eighthPtToPt**(`eighthPt`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:45](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L45) Eighths of a point (OOXML border widths, `w:sz` on borders): 8 = 1 pt. ## Parameters [Section titled “Parameters”](#parameters) ### eighthPt [Section titled “eighthPt”](#eighthpt) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # embeddedDocFontProvider > **embeddedDocFontProvider**(`embedded`): [`FontProvider`](/api/index/interfaces/fontprovider/) Defined in: [src/core/fonts/provider.ts:97](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L97) Fonts embedded in the source document itself (docx fontTable), keyed by the normalized family name — an exact-name match, never a substitution. ## Parameters [Section titled “Parameters”](#parameters) ### embedded [Section titled “embedded”](#embedded) `ReadonlyMap`<`string`, [`FontRegistry`](/api/index/classes/fontregistry/)> ## Returns [Section titled “Returns”](#returns) [`FontProvider`](/api/index/interfaces/fontprovider/) # emuToPt > **emuToPt**(`emu`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:50](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L50) English Metric Units (DrawingML): 914400 EMU = 1 inch = 72 pt → 12700 EMU = 1 pt. ## Parameters [Section titled “Parameters”](#parameters) ### emu [Section titled “emu”](#emu) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # fetchFontSet > **fetchFontSet**(`options?`): `Promise`<[`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/)> Defined in: [src/core/fonts/remote-fonts.ts:175](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L175) Download a full variant set (regular required; bold/italic/bold-italic best-effort) for the open family that best matches the requested name. ## Parameters [Section titled “Parameters”](#parameters) ### options? [Section titled “options?”](#options) [`FetchFontSetOptions`](/api/index/interfaces/fetchfontsetoptions/) = `{}` The family to substitute and an optional fetch override. ## Returns [Section titled “Returns”](#returns) `Promise`<[`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/)> The downloaded font bytes per variant. ## Throws [Section titled “Throws”](#throws) Error when the required regular face cannot be downloaded. # formatLoss > **formatLoss**(`loss`): `string` Defined in: [src/core/ir/loss.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L40) Format a [Loss](/api/index/interfaces/loss/) as one human-readable line, e.g. `[degraded] charts at sheet "Q3": gradient flattened`. ## Parameters [Section titled “Parameters”](#parameters) ### loss [Section titled “loss”](#loss) [`Loss`](/api/index/interfaces/loss/) The loss to format. ## Returns [Section titled “Returns”](#returns) `string` The one-line description. # getHyphenator > **getHyphenator**(`language`): `Promise`<[`Hyphenator`](/api/index/interfaces/hyphenator/)> Defined in: [src/core/hyphenation/index.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/index.ts#L48) Lazily build (and cache) a language’s [Hyphenator](/api/index/interfaces/hyphenator/). The patterns module is dynamically imported the first time a language is requested, so callers that never hyphenate pay no cold-start cost. ## Parameters [Section titled “Parameters”](#parameters) ### language [Section titled “language”](#language) [`SupportedLanguage`](/api/index/type-aliases/supportedlanguage/) The language to load. ## Returns [Section titled “Returns”](#returns) `Promise`<[`Hyphenator`](/api/index/interfaces/hyphenator/)> The cached hyphenator. # halfPtToPt > **halfPtToPt**(`halfPt`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L40) Half-points (OOXML font sizes, `w:sz`): 2 half-points = 1 pt. ## Parameters [Section titled “Parameters”](#parameters) ### halfPt [Section titled “halfPt”](#halfpt) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # inchToPt > **inchToPt**(`inches`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:60](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L60) Inches: 1 inch = 72 pt. ## Parameters [Section titled “Parameters”](#parameters) ### inches [Section titled “inches”](#inches) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # isEmbeddingRestricted > **isEmbeddingRestricted**(`fsType`): `boolean` Defined in: [src/core/fonts/provider.ts:180](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L180) True when the fsType licensing nibble forbids embedding entirely. ## Parameters [Section titled “Parameters”](#parameters) ### fsType [Section titled “fsType”](#fstype) `number` | `undefined` ## Returns [Section titled “Returns”](#returns) `boolean` # layoutStyledDocument > **layoutStyledDocument**(`body`, `options`): `LaidOutPdfDocument` Defined in: [src/layout/styled-layout.ts:821](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L821) Layout phase (the FlowDoc→PageDoc transform of ir-design §7): body → positioned pages (PageItems), font/image resources, logical structure. Drives the whole pass — numbering and note numbering, per-section geometry, per-block layout, the footnote/endnote/comment tails, then pagination — and returns the LaidOutPdfDocument (the PageDoc plus its PDF companion). ## Parameters [Section titled “Parameters”](#parameters) ### body [Section titled “body”](#body) readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[] The document body the section model partitions. ### options [Section titled “options”](#options) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/) The resolved fonts, styles, section model, and PDF-output toggles. ## Returns [Section titled “Returns”](#returns) `LaidOutPdfDocument` The positioned pages plus the PDF-only PdfLayoutAux companion. # localFontProvider > **localFontProvider**(): [`FontProvider`](/api/index/interfaces/fontprovider/) Defined in: [src/core/fonts/provider.ts:193](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L193) System fonts via the Local Font Access API (Chromium 103+, permission prompt). OPT-IN by design: never wired in implicitly. Returns ‘none’ when the API is unavailable (Node, Safari, Firefox), the family is not installed, or the face’s OS/2 fsType marks embedding as restricted — embedding a restricted font into a PDF would violate its license, so the chain falls through to a substitute instead. ## Returns [Section titled “Returns”](#returns) [`FontProvider`](/api/index/interfaces/fontprovider/) # mmToPt > **mmToPt**(`mm`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:65](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L65) Millimetres: 25.4 mm = 1 inch = 72 pt. ## Parameters [Section titled “Parameters”](#parameters) ### mm [Section titled “mm”](#mm) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # parseTtf > **parseTtf**(`raw`): [`ParsedTtf`](/api/index/interfaces/parsedttf/) Defined in: [src/core/font/ttf-parser.ts:100](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L100) Parse TrueType / OpenType font bytes into a [ParsedTtf](/api/index/interfaces/parsedttf/). ## Parameters [Section titled “Parameters”](#parameters) ### raw [Section titled “raw”](#raw) `Uint8Array` The font bytes (sfnt: TrueType `0x00010000` or OpenType-CFF `OTTO`). ## Returns [Section titled “Returns”](#returns) [`ParsedTtf`](/api/index/interfaces/parsedttf/) The parsed metrics, mappings and layout tables. ## Throws [Section titled “Throws”](#throws) Error when the bytes are not a TrueType or OpenType font. # pt > **pt**(`value`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:22](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L22) Brand a raw number as points. The number must already BE points. ## Parameters [Section titled “Parameters”](#parameters) ### value [Section titled “value”](#value) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # pxToPt > **pxToPt**(`px`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:55](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L55) CSS reference pixels: 96 px = 1 inch = 72 pt. ## Parameters [Section titled “Parameters”](#parameters) ### px [Section titled “px”](#px) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # readDocx > **readDocx**(`docx`): [`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)> Defined in: [src/word/docx-reader.ts:82](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-reader.ts#L82) Read a `.docx` package into the [FlowDoc](/api/index/interfaces/flowdoc/) interlayer (ir-design §7): the document-derived half of what the converter used to do inline. Parses the main document, styles, numbering, notes, comments, headers/footers, charts, embedded fonts and core properties, runs the body through the stage-6 FlowDoc transforms (list markers then the style cascade), and returns the tree plus any graceful-degradation losses. Caller-supplied conversion options (fonts, PDF/A, signature) stay with the converter/facade. ## Parameters [Section titled “Parameters”](#parameters) ### docx [Section titled “docx”](#docx) `Uint8Array` The raw `.docx` (OPC ZIP) bytes. ## Returns [Section titled “Returns”](#returns) [`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)> The parsed [FlowDoc](/api/index/interfaces/flowdoc/) and the losses recorded while reading. # readOs2FsType > **readOs2FsType**(`bytes`): `number` | `undefined` Defined in: [src/core/fonts/provider.ts:162](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L162) OS/2 fsType embedding permissions (OpenType §OS/2). Returns undefined when the table is absent/corrupt. The licensing nibble: 0 = installable, 2 = RESTRICTED (no embedding), 4 = preview & print, 8 = editable. ## Parameters [Section titled “Parameters”](#parameters) ### bytes [Section titled “bytes”](#bytes) `Uint8Array` ## Returns [Section titled “Returns”](#returns) `number` | `undefined` # readXlsx > **readXlsx**(`xlsx`, `options?`): [`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)> Defined in: [src/excel/xlsx-reader.ts:100](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/excel/xlsx-reader.ts#L100) Read a `.xlsx` and project it to a [FlowDoc](/api/index/interfaces/flowdoc/) in one step: readXlsxToSheetDoc then projectSheetDoc. The xlsx reader records no read-time losses. ## Parameters [Section titled “Parameters”](#parameters) ### xlsx [Section titled “xlsx”](#xlsx) `Uint8Array` The `.xlsx` (OPC ZIP) bytes. ### options? [Section titled “options?”](#options) `ProjectSheetOptions` = `{}` Projection knobs (the W9 reference date). ## Returns [Section titled “Returns”](#returns) [`ReadResult`](/api/index/interfaces/readresult/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)> The flow document plus an (empty) loss list. # remoteFontProvider > **remoteFontProvider**(`options?`): [`FontProvider`](/api/index/interfaces/fontprovider/) Defined in: [src/core/fonts/provider.ts:120](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L120) Open CDN substitutes (Arimo / Tinos / Cousine / Carlito / Caladea — the LibreOffice metric-compatible mapping). Always answers; the chain reports it as a substitution. ## Parameters [Section titled “Parameters”](#parameters) ### options? [Section titled “options?”](#options) #### fetch? [Section titled “fetch?”](#fetch) [`FetchLike`](/api/index/type-aliases/fetchlike/) ## Returns [Section titled “Returns”](#returns) [`FontProvider`](/api/index/interfaces/fontprovider/) # renderStyledPdf > **renderStyledPdf**(`body`, `options`): `Uint8Array` Defined in: [src/pdf/styled-page-renderer.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/styled-page-renderer.ts#L19) Render a body to a PDF: lay it out, then emit it over a fresh PdfDocument. The byte-stable synchronous path. ## Parameters [Section titled “Parameters”](#parameters) ### body [Section titled “body”](#body) readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[] ### options [Section titled “options”](#options) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/) ## Returns [Section titled “Returns”](#returns) `Uint8Array` ## Throws [Section titled “Throws”](#throws) Error when `options.encrypt` is set — encryption requires the async renderStyledPdfEncrypted path (WebCrypto). # resolveFamilyKey > **resolveFamilyKey**(`name`): [`FamilyKey`](/api/index/type-aliases/familykey/) Defined in: [src/core/fonts/remote-fonts.ts:101](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L101) Map a document-referenced font family to a curated open substitute: an exact metric twin when one is known (e.g. Calibri → Carlito), otherwise a serif/mono/sans style fallback. ## Parameters [Section titled “Parameters”](#parameters) ### name [Section titled “name”](#name) `string` | `undefined` The referenced family name (case-insensitive); empty ⇒ Arimo. ## Returns [Section titled “Returns”](#returns) [`FamilyKey`](/api/index/type-aliases/familykey/) The chosen [FamilyKey](/api/index/type-aliases/familykey/). # signPdf > **signPdf**(`pdf`, `cred`): `Promise`<`Uint8Array`<`ArrayBufferLike`>> Defined in: [src/pdf/signature.ts:173](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L173) Sign a PDF that already carries a signature placeholder (from addSignaturePlaceholder). Computes the real `/ByteRange`, hashes the covered bytes (SHA-256), builds the detached PKCS#7/CMS, and writes it into the reserved `/Contents` hole — leaving every other byte untouched. ## Parameters [Section titled “Parameters”](#parameters) ### pdf [Section titled “pdf”](#pdf) `Uint8Array` The placeholder-bearing PDF bytes. ### cred [Section titled “cred”](#cred) [`SignerCredentials`](/api/index/interfaces/signercredentials/) The signer’s certificate, key and algorithm. ## Returns [Section titled “Returns”](#returns) `Promise`<`Uint8Array`<`ArrayBufferLike`>> A new byte array with the real ByteRange and signature spliced in. ## Throws [Section titled “Throws”](#throws) Error when no placeholder is found, it is malformed, WebCrypto is unavailable, or the signature exceeds the reserved `/Contents` size. # splitPatternBundle > **splitPatternBundle**(`bundle`): `string`\[] Defined in: [src/core/hyphenation/liang.ts:156](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L156) Split a TeX-style pattern bundle (a whitespace-separated string) into the pattern array [createHyphenator](/api/index/functions/createhyphenator/) expects. ## Parameters [Section titled “Parameters”](#parameters) ### bundle [Section titled “bundle”](#bundle) `string` The whitespace-separated patterns. ## Returns [Section titled “Returns”](#returns) `string`\[] The pattern array (empty entries removed). # subsetTtf > **subsetTtf**(`parsed`, `usedGids`): `Uint8Array` Defined in: [src/core/font/ttf-subset.ts:38](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-subset.ts#L38) Subset a TrueType font to the glyphs in `usedGids` (plus their composite components and GID 0). All tables are kept intact so the CIDFontType2 `/CIDToGIDMap /Identity` contract holds; only `glyf`/`loca` are rebuilt, with unused glyphs zero-length. ## Parameters [Section titled “Parameters”](#parameters) ### parsed [Section titled “parsed”](#parsed) [`ParsedTtf`](/api/index/interfaces/parsedttf/) The parsed source font (must have `glyf` + `loca`). ### usedGids [Section titled “usedGids”](#usedgids) `Iterable`<`number`> The glyph ids actually used. ## Returns [Section titled “Returns”](#returns) `Uint8Array` The subset font bytes. ## Throws [Section titled “Throws”](#throws) Error when the font has no `glyf`/`loca` (e.g. a CFF/OTF font). # twipsToPt > **twipsToPt**(`twips`): [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/core/ir/units.ts:35](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L35) ## Parameters [Section titled “Parameters”](#parameters) ### twips [Section titled “twips”](#twips) `number` ## Returns [Section titled “Returns”](#returns) [`Pt`](/api/index/type-aliases/pt/) # writeDocx > **writeDocx**(`flow`): [`WriteResult`](/api/index/interfaces/writeresult/) Defined in: [src/word/docx-writer.ts:232](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-writer.ts#L232) Serialize a [FlowDoc](/api/index/interfaces/flowdoc/) to a WordprocessingML package (E-DOCX) — the inverse of the docx reader. A flow medium with zero layout and zero I/O: the body’s resolved properties are written as direct (denormalized) formatting, so the round-trip is semantic, not byte-for-byte. Emits the main document plus numbering, footnotes/endnotes, comments (+ commentsExtended), per-section headers/footers, charts and media parts; anything not yet serialized is reported as a [Loss](/api/index/interfaces/loss/). ## Parameters [Section titled “Parameters”](#parameters) ### flow [Section titled “flow”](#flow) [`FlowDoc`](/api/index/interfaces/flowdoc/) The interlayer to write back. ## Returns [Section titled “Returns”](#returns) [`WriteResult`](/api/index/interfaces/writeresult/) The encoded `.docx` bytes and the loss report. # writeHtml > **writeHtml**(`flow`): [`WriteResult`](/api/index/interfaces/writeresult/) Defined in: [src/html/html-writer.ts:85](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/html/html-writer.ts#L85) Render a [FlowDoc](/api/index/interfaces/flowdoc/) to a self-contained HTML document (ir-design §7). A flow medium: no pagination, no layout engine and no fonts to embed, so this is a pure, zero-I/O transform. `flow.body` already carries FINAL effective properties (the Stage-6 contract), so values map straight to CSS; every read still routes through the cascade resolver over the empty sheet, a memoized identity on reader output. Charts and shapes emit as inline SVG; deliberately out of scope (reported as losses): inline math and headers/footers (no fixed pages to band them onto). Page-break hints map to CSS `break-before`. ## Parameters [Section titled “Parameters”](#parameters) ### flow [Section titled “flow”](#flow) [`FlowDoc`](/api/index/interfaces/flowdoc/) The format-neutral interlayer document tree. ## Returns [Section titled “Returns”](#returns) [`WriteResult`](/api/index/interfaces/writeresult/) The encoded HTML bytes plus the recorded [Loss](/api/index/interfaces/loss/) list. # writeSvg > **writeSvg**(`laid`, `opts?`): [`WriteResult`](/api/index/interfaces/writeresult/) Defined in: [src/svg/svg-writer.ts:43](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/svg/svg-writer.ts#L43) Render a [LaidOutDocument](/api/index/interfaces/laidoutdocument/) to a single SVG preview (ir-design §7 / stage 6). Written purely against the PageDoc schema; knows nothing about OOXML or the PDF writer. PageItem coordinates are already top-left/y-down — SVG’s own frame — so they are emitted verbatim. Pages stack vertically in one ``, separated by [SvgWriteOptions.pageGap](/api/index/interfaces/svgwriteoptions/#pagegap), each on a white outlined rect so they read as pages. ## Parameters [Section titled “Parameters”](#parameters) ### laid [Section titled “laid”](#laid) [`LaidOutDocument`](/api/index/interfaces/laidoutdocument/) The laid-out, paginated document from the layout engine. ### opts? [Section titled “opts?”](#opts) [`SvgWriteOptions`](/api/index/interfaces/svgwriteoptions/) = `{}` Optional page-gap override. ## Returns [Section titled “Returns”](#returns) [`WriteResult`](/api/index/interfaces/writeresult/) The encoded SVG bytes plus the recorded [Loss](/api/index/interfaces/loss/) list. # BorderItem Defined in: [src/layout/page-doc.ts:198](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L198) One edge of a table-cell frame; `(x, y)` is the cell box’s top-left corner. ## Extends [Section titled “Extends”](#extends) * [`PageItemBase`](/api/index/interfaces/pageitembase/) ## Properties [Section titled “Properties”](#properties) ### artifact? [Section titled “artifact?”](#artifact) > `readonly` `optional` **artifact?**: `"pagination"` Defined in: [src/layout/page-doc.ts:185](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L185) Tagged PDF: explicitly mark this item as a pagination artifact (running header/footer, §14.8.2.2.2). Distinguishes header/footer text from not-yet-tagged body content so it is typed `/Artifact /Pagination`, never a P. #### Inherited from [Section titled “Inherited from”](#inherited-from) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`artifact`](/api/index/interfaces/pageitembase/#artifact) *** ### borderColorHex [Section titled “borderColorHex”](#bordercolorhex) > `readonly` **borderColorHex**: `string` Defined in: [src/layout/page-doc.ts:206](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L206) *** ### borderSizePt [Section titled “borderSizePt”](#bordersizept) > `readonly` **borderSizePt**: `number` Defined in: [src/layout/page-doc.ts:205](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L205) *** ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:204](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L204) *** ### side [Section titled “side”](#side) > `readonly` **side**: `"top"` | `"right"` | `"bottom"` | `"left"` Defined in: [src/layout/page-doc.ts:200](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L200) *** ### structId? [Section titled “structId?”](#structid) > `readonly` `optional` **structId?**: `number` Defined in: [src/layout/page-doc.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L179) Tagged PDF (§14.8): the logical structure node this item’s content belongs to. Set only on body content in tagged mode; undefined text in the line pass is treated as an artifact. Ignored when not tagging. #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`structId`](/api/index/interfaces/pageitembase/#structid) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"border"` Defined in: [src/layout/page-doc.ts:199](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L199) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:203](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L203) *** ### x [Section titled “x”](#x) > `readonly` **x**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:201](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L201) *** ### y [Section titled “y”](#y) > `readonly` **y**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:202](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L202) # Converter Defined in: [src/core/converter/facade.ts:107](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L107) A registry-driven converter: readers → layout → writers (ir-design §7). ## Properties [Section titled “Properties”](#properties) ### convert [Section titled “convert”](#convert) > **convert**: (`bytes`, `options?`) => `Promise`<[`ConvertResult`](/api/index/interfaces/convertresult/)> Defined in: [src/core/converter/facade.ts:113](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L113) Read the bytes and convert them to the requested target (default `'pdf'`). #### Parameters [Section titled “Parameters”](#parameters) ##### bytes [Section titled “bytes”](#bytes) `Uint8Array` ##### options? [Section titled “options?”](#options) [`ConvertOptions`](/api/index/interfaces/convertoptions/) #### Returns [Section titled “Returns”](#returns) `Promise`<[`ConvertResult`](/api/index/interfaces/convertresult/)> *** ### detect [Section titled “detect”](#detect) > **detect**: (`bytes`) => [`DocumentReader`](/api/index/interfaces/documentreader/)<`SourceDoc`> | `undefined` Defined in: [src/core/converter/facade.ts:111](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L111) Detect the input format by reader sniffing; undefined when unknown. #### Parameters [Section titled “Parameters”](#parameters-1) ##### bytes [Section titled “bytes”](#bytes-1) `Uint8Array` #### Returns [Section titled “Returns”](#returns-1) [`DocumentReader`](/api/index/interfaces/documentreader/)<`SourceDoc`> | `undefined` *** ### readers [Section titled “readers”](#readers) > `readonly` **readers**: readonly [`DocumentReader`](/api/index/interfaces/documentreader/)<`SourceDoc`>\[] Defined in: [src/core/converter/facade.ts:109](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L109) The registered readers, in sniffing order. # ConvertOptions Defined in: [src/core/converter/facade.ts:42](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L42) Options for a [Converter.convert](/api/index/interfaces/converter/#convert) call (extends the docx PDF options). ## Extends [Section titled “Extends”](#extends) * `ConvertDocxOptions` ## Properties [Section titled “Properties”](#properties) ### attachments? [Section titled “attachments?”](#attachments) > `readonly` `optional` **attachments?**: readonly `AttachedFile`\[] Defined in: [src/layout/styled-layout.ts:290](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L290) Files to embed as associated files (catalog `/AF` + `/Names` `/EmbeddedFiles`). Only emitted for plain PDF and PDF/A-3 (PDF/A-1/2 forbid arbitrary embedded files); ignored for PDF/A-1/2. The docx/xlsx converters can embed the source document automatically via `embedSource`. #### Inherited from [Section titled “Inherited from”](#inherited-from) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`attachments`](/api/index/interfaces/styledrenderoptions/#attachments) *** ### charts? [Section titled “charts?”](#charts) > `readonly` `optional` **charts?**: `ReadonlyMap`<`string`, [`Chart`](/api/core/document-model/interfaces/chart/)> Defined in: [src/layout/styled-layout.ts:231](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L231) Parsed charts keyed by relationship id (`ChartBlock.chartRelId`). Supplied by the converter, which resolves the chart parts from the package. #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`charts`](/api/index/interfaces/styledrenderoptions/#charts) *** ### commentAnnotations? [Section titled “commentAnnotations?”](#commentannotations) > `readonly` `optional` **commentAnnotations?**: `boolean` Defined in: [src/layout/styled-layout.ts:224](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L224) CM2b — also emit each comment as a native PDF `/Text` (sticky-note) annotation at its marker. Opt-in and interactive-only: suppressed under PDF/A and tagged output (where it would need annotation/appearance conformance), since the clickable marker + Comments section already carry the content there. #### Inherited from [Section titled “Inherited from”](#inherited-from-2) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`commentAnnotations`](/api/index/interfaces/styledrenderoptions/#commentannotations) *** ### comments? [Section titled “comments?”](#comments) > `readonly` `optional` **comments?**: `ReadonlyMap`<`string`, [`Comment`](/api/core/document-model/interfaces/comment/)> Defined in: [src/layout/styled-layout.ts:216](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L216) §17.13.4 review comments by id; rendered as superscript markers in text and a list after the body (after endnotes), each with its author/date. #### Inherited from [Section titled “Inherited from”](#inherited-from-3) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`comments`](/api/index/interfaces/styledrenderoptions/#comments) *** ### embeddedFonts? [Section titled “embeddedFonts?”](#embeddedfonts) > `readonly` `optional` **embeddedFonts?**: `ReadonlyMap`<`string`, [`FontRegistry`](/api/index/classes/fontregistry/)> Defined in: [src/layout/styled-layout.ts:188](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L188) The document’s OWN embedded fonts (`word/fonts/*.odttf`, de-obfuscated), keyed by normalized font name. A run whose `w:ascii` matches one renders with the real font — glyph-exact, no substitution. Highest priority. #### Inherited from [Section titled “Inherited from”](#inherited-from-4) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`embeddedFonts`](/api/index/interfaces/styledrenderoptions/#embeddedfonts) *** ### embedSource? [Section titled “embedSource?”](#embedsource) > `readonly` `optional` **embedSource?**: `boolean` Defined in: [src/word/docx-to-pdf.ts:38](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-to-pdf.ts#L38) For PDF/A-3 only: embed the input `.docx` as an associated source file (`/AFRelationship /Source`) so the archive carries its own source. Ignored for other profiles (PDF/A-1/2 forbid arbitrary embedded files). #### Inherited from [Section titled “Inherited from”](#inherited-from-5) `ConvertDocxOptions.embedSource` *** ### encrypt? [Section titled “encrypt?”](#encrypt) > `readonly` `optional` **encrypt?**: [`PdfEncryptOptions`](/api/index/interfaces/pdfencryptoptions/) Defined in: [src/layout/styled-layout.ts:283](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L283) §7.6 PDF encryption (AES-256, R6). Only honoured on the ASYNC conversion path (WebCrypto); mutually exclusive with `pdfA` (ISO 19005 forbids `/Encrypt`) and with signatures (v1). #### Inherited from [Section titled “Inherited from”](#inherited-from-6) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`encrypt`](/api/index/interfaces/styledrenderoptions/#encrypt) *** ### endnotes? [Section titled “endnotes?”](#endnotes) > `readonly` `optional` **endnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:211](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L211) #### Inherited from [Section titled “Inherited from”](#inherited-from-7) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`endnotes`](/api/index/interfaces/styledrenderoptions/#endnotes) *** ### fontBytes? [Section titled “fontBytes?”](#fontbytes) > `readonly` `optional` **fontBytes?**: `Uint8Array`<`ArrayBufferLike`> Defined in: [src/word/docx-to-pdf.ts:23](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-to-pdf.ts#L23) A single regular-variant font as raw bytes. #### Inherited from [Section titled “Inherited from”](#inherited-from-8) `ConvertDocxOptions.fontBytes` *** ### fontFamily? [Section titled “fontFamily?”](#fontfamily) > `readonly` `optional` **fontFamily?**: `string` Defined in: [src/word/docx-to-pdf.ts:30](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-to-pdf.ts#L30) Force a substitute font family for the auto-download path (e.g. `'serif'`). Ignored when `fonts`/`fontBytes` are supplied. #### Inherited from [Section titled “Inherited from”](#inherited-from-9) `ConvertDocxOptions.fontFamily` *** ### fontFetch? [Section titled “fontFetch?”](#fontfetch) > `readonly` `optional` **fontFetch?**: [`FetchLike`](/api/index/type-aliases/fetchlike/) Defined in: [src/word/docx-to-pdf.ts:32](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-to-pdf.ts#L32) Injectable `fetch` for the auto-download path (defaults to the global `fetch`). #### Inherited from [Section titled “Inherited from”](#inherited-from-10) `ConvertDocxOptions.fontFetch` *** ### fontProviders? [Section titled “fontProviders?”](#fontproviders) > `readonly` `optional` **fontProviders?**: readonly [`FontProvider`](/api/index/interfaces/fontprovider/)\[] Defined in: [src/core/converter/facade.ts:67](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L67) Font resolution chain (ir-design §8). When set (and no caller `fonts`), the facade resolves the default font set through these providers — e.g. \[localFontProvider(), remoteFontProvider()] — and reports a ‘substituted’ loss when anything below a caller/embedded answer wins. Local Font Access stays strictly opt-in via this option (it can trigger a permission prompt), which is why nothing wires it in by default. *** ### fonts? [Section titled “fonts?”](#fonts) > `readonly` `optional` **fonts?**: [`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/) Defined in: [src/word/docx-to-pdf.ts:25](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-to-pdf.ts#L25) Explicit font bytes per variant (regular/bold/italic/bold-italic). #### Inherited from [Section titled “Inherited from”](#inherited-from-11) `ConvertDocxOptions.fonts` *** ### footnotes? [Section titled “footnotes?”](#footnotes) > `readonly` `optional` **footnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:210](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L210) §17.11 notes content by id. Footnotes render in a reserved band at the bottom of the referencing page; endnotes flow after the body. #### Inherited from [Section titled “Inherited from”](#inherited-from-12) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`footnotes`](/api/index/interfaces/styledrenderoptions/#footnotes) *** ### headersFooters? [Section titled “headersFooters?”](#headersfooters) > `readonly` `optional` **headersFooters?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:205](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L205) Header/footer body content keyed by relationship id. #### Inherited from [Section titled “Inherited from”](#inherited-from-13) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`headersFooters`](/api/index/interfaces/styledrenderoptions/#headersfooters) *** ### hyphenator? [Section titled “hyphenator?”](#hyphenator) > `readonly` `optional` **hyphenator?**: [`Hyphenator`](/api/index/interfaces/hyphenator/) Defined in: [src/layout/styled-layout.ts:243](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L243) Optional Liang hyphenator. When set, each word token is split at allowed hyphenation positions and offered to Knuth-Plass as potential break points (with a small disincentive). Improves justified paragraph rags. #### Inherited from [Section titled “Inherited from”](#inherited-from-14) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`hyphenator`](/api/index/interfaces/styledrenderoptions/#hyphenator) *** ### info? [Section titled “info?”](#info) > `readonly` `optional` **info?**: [`DocumentInfo`](/api/index/interfaces/documentinfo/) Defined in: [src/layout/styled-layout.ts:248](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L248) Optional `/Info` dictionary metadata (ISO 32000-1 §14.3.3). Unset fields are omitted; if any field is set a PDF `/Info` entry is emitted. #### Inherited from [Section titled “Inherited from”](#inherited-from-15) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`info`](/api/index/interfaces/styledrenderoptions/#info) *** ### language? [Section titled “language?”](#language) > `readonly` `optional` **language?**: `string` Defined in: [src/layout/styled-layout.ts:277](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L277) Document natural language (BCP 47, e.g. `"en-US"`, `"ru-RU"`) for the tagged-PDF catalog `/Lang` (§14.9.2). Defaults to `"en-US"`. The docx converter fills this from the document’s default `w:lang`. #### Inherited from [Section titled “Inherited from”](#inherited-from-16) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`language`](/api/index/interfaces/styledrenderoptions/#language) *** ### layoutProfile? [Section titled “layoutProfile?”](#layoutprofile) > `readonly` `optional` **layoutProfile?**: `LayoutProfile` Defined in: [src/layout/styled-layout.ts:174](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L174) Renderer-compatibility profile for the line-height model (default `'ream'`). #### Inherited from [Section titled “Inherited from”](#inherited-from-17) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`layoutProfile`](/api/index/interfaces/styledrenderoptions/#layoutprofile) *** ### marginBottom? [Section titled “marginBottom?”](#marginbottom) > `readonly` `optional` **marginBottom?**: `number` Defined in: [src/layout/styled-layout.ts:237](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L237) #### Inherited from [Section titled “Inherited from”](#inherited-from-18) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginBottom`](/api/index/interfaces/styledrenderoptions/#marginbottom) *** ### marginLeft? [Section titled “marginLeft?”](#marginleft) > `readonly` `optional` **marginLeft?**: `number` Defined in: [src/layout/styled-layout.ts:234](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L234) #### Inherited from [Section titled “Inherited from”](#inherited-from-19) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginLeft`](/api/index/interfaces/styledrenderoptions/#marginleft) *** ### marginRight? [Section titled “marginRight?”](#marginright) > `readonly` `optional` **marginRight?**: `number` Defined in: [src/layout/styled-layout.ts:235](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L235) #### Inherited from [Section titled “Inherited from”](#inherited-from-20) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginRight`](/api/index/interfaces/styledrenderoptions/#marginright) *** ### marginTop? [Section titled “marginTop?”](#margintop) > `readonly` `optional` **marginTop?**: `number` Defined in: [src/layout/styled-layout.ts:236](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L236) #### Inherited from [Section titled “Inherited from”](#inherited-from-21) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginTop`](/api/index/interfaces/styledrenderoptions/#margintop) *** ### now? [Section titled “now?”](#now) > `readonly` `optional` **now?**: `Date` Defined in: [src/core/converter/facade.ts:58](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L58) E-SHEET W9 — reference date for conditional-format `timePeriod` rules and TODAY()/NOW() in `expression` rules (spreadsheet input). An explicit input, never the wall clock; omitted ⇒ those clock-relative rules no-op. *** ### numbering? [Section titled “numbering?”](#numbering) > `readonly` `optional` **numbering?**: [`Numbering`](/api/core/document-model/interfaces/numbering/) Defined in: [src/layout/styled-layout.ts:192](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L192) §17.9 numbering definitions; applied to list paragraphs before layout. #### Inherited from [Section titled “Inherited from”](#inherited-from-22) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`numbering`](/api/index/interfaces/styledrenderoptions/#numbering) *** ### pageHeight? [Section titled “pageHeight?”](#pageheight) > `readonly` `optional` **pageHeight?**: `number` Defined in: [src/layout/styled-layout.ts:233](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L233) #### Inherited from [Section titled “Inherited from”](#inherited-from-23) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pageHeight`](/api/index/interfaces/styledrenderoptions/#pageheight) *** ### pageWidth? [Section titled “pageWidth?”](#pagewidth) > `readonly` `optional` **pageWidth?**: `number` Defined in: [src/layout/styled-layout.ts:232](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L232) #### Inherited from [Section titled “Inherited from”](#inherited-from-24) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pageWidth`](/api/index/interfaces/styledrenderoptions/#pagewidth) *** ### pdfA? [Section titled “pdfA?”](#pdfa) > `readonly` `optional` **pdfA?**: `PdfALevel` Defined in: [src/layout/styled-layout.ts:258](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L258) When set, emit a PDF/A-conformant file: an OutputIntent with an embedded sRGB ICC profile, document XMP `/Metadata` (the pdfaid identifier), `/ID`, and subset-tagged fonts with a `/CIDSet`. The profile picks the rest: part 1 → PDF 1.4 + flattened image alpha (no transparency); part 2/3 → PDF 1.7 + preserved transparency (image `/SMask` + page group); part 3 → may carry embedded associated files (see `attachments`); level a → tagged (logical structure); b → visual; u → b + Unicode mapping. #### Inherited from [Section titled “Inherited from”](#inherited-from-25) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pdfA`](/api/index/interfaces/styledrenderoptions/#pdfa) *** ### pdfUA? [Section titled “pdfUA?”](#pdfua) > `readonly` `optional` **pdfUA?**: `boolean` Defined in: [src/layout/styled-layout.ts:271](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L271) PDF/UA-1 (ISO 14289-1): implies tagged; the XMP carries `pdfuaid:part=1` and the document always gets a title (AT announces it). Combines freely with `pdfA` level-a profiles. #### Inherited from [Section titled “Inherited from”](#inherited-from-26) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pdfUA`](/api/index/interfaces/styledrenderoptions/#pdfua) *** ### registriesByFamily? [Section titled “registriesByFamily?”](#registriesbyfamily) > `readonly` `optional` **registriesByFamily?**: `ReadonlyMap`<[`FamilyKey`](/api/index/type-aliases/familykey/), [`FontRegistry`](/api/index/classes/fontregistry/)> Defined in: [src/layout/styled-layout.ts:182](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L182) Per-run font resolution: when supplied, each text run picks the registry of its declared family (sans→arimo / serif→tinos / mono→cousine via the run’s `w:ascii`) instead of always using `registry`. Absent ⇒ single-family (every run uses `registry`), byte-identical to before. `registry` remains the guaranteed fallback for math/chart/default glyphs and any missing family. #### Inherited from [Section titled “Inherited from”](#inherited-from-27) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`registriesByFamily`](/api/index/interfaces/styledrenderoptions/#registriesbyfamily) *** ### resources? [Section titled “resources?”](#resources) > `readonly` `optional` **resources?**: [`ResourceStore`](/api/index/classes/resourcestore/) Defined in: [src/layout/styled-layout.ts:226](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L226) Content-addressed binary store; image nodes reference it by [ResourceId](/api/index/type-aliases/resourceid/). #### Inherited from [Section titled “Inherited from”](#inherited-from-28) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`resources`](/api/index/interfaces/styledrenderoptions/#resources) *** ### section? [Section titled “section?”](#section) > `readonly` `optional` **section?**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/) Defined in: [src/layout/styled-layout.ts:197](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L197) Single-section legacy entry-point. If `sections` is set it takes precedence and `section` is ignored. #### Inherited from [Section titled “Inherited from”](#inherited-from-29) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`section`](/api/index/interfaces/styledrenderoptions/#section) *** ### sections? [Section titled “sections?”](#sections) > `readonly` `optional` **sections?**: readonly [`Section`](/api/core/document-model/interfaces/section/)\[] Defined in: [src/layout/styled-layout.ts:203](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L203) ECMA-376 §17.6 — ordered list of sections. Each section’s `endIndex` is the exclusive bound into the body array (section N covers `body[sections[N-1].endIndex..sections[N].endIndex)`). #### Inherited from [Section titled “Inherited from”](#inherited-from-30) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`sections`](/api/index/interfaces/styledrenderoptions/#sections) *** ### signature? [Section titled “signature?”](#signature) > `readonly` `optional` **signature?**: [`SignatureOptions`](/api/index/interfaces/signatureoptions/) Defined in: [src/word/docx-to-pdf.ts:43](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-to-pdf.ts#L43) Digitally sign the output (ISO 32000 §12.8). Requires the async convertDocxToPdf (signing uses WebCrypto); ignored by the sync converter. #### Inherited from [Section titled “Inherited from”](#inherited-from-31) `ConvertDocxOptions.signature` *** ### signaturePlaceholder? [Section titled “signaturePlaceholder?”](#signatureplaceholder) > `readonly` `optional` **signaturePlaceholder?**: [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/) Defined in: [src/layout/styled-layout.ts:297](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L297) Emit an (invisible) signature field + signature dictionary with placeholder `/ByteRange` and `/Contents` (ISO 32000 §12.8). The result is an UNSIGNED PDF; pass it to `signPdf()` to fill the placeholder with a real PKCS#7 signature. #### Inherited from [Section titled “Inherited from”](#inherited-from-32) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`signaturePlaceholder`](/api/index/interfaces/styledrenderoptions/#signatureplaceholder) *** ### strict? [Section titled “strict?”](#strict) > `readonly` `optional` **strict?**: `boolean` Defined in: [src/core/converter/facade.ts:52](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L52) Strict mode (handoff v1 §5): throw ConversionLossError on the first recorded loss instead of returning it in the report. *** ### tagged? [Section titled “tagged?”](#tagged) > `readonly` `optional` **tagged?**: `boolean` Defined in: [src/layout/styled-layout.ts:265](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L265) Emit a tagged PDF (ISO 32000-1 §14.8): a `/StructTreeRoot` describing reading order, marked content (BDC/EMC + MCID) on body text, and `/Artifact` marking of page decoration. Implied by `pdfA: 'PDF/A-1a'`. Independent of PDF/A otherwise (a plain tagged PDF is useful on its own). #### Inherited from [Section titled “Inherited from”](#inherited-from-33) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`tagged`](/api/index/interfaces/styledrenderoptions/#tagged) *** ### to? [Section titled “to?”](#to) > `readonly` `optional` **to?**: `"pdf"` | `"svg"` | `"html"` | `"docx"` | `"xlsx"` Defined in: [src/core/converter/facade.ts:47](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L47) Target: ‘pdf’ (default), ‘svg’ (page-stack preview), ‘html’/‘docx’ (flowed), or ‘xlsx’ (the native grid writer — spreadsheet input only). # ConvertResult Defined in: [src/core/converter/facade.ts:71](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L71) The output of a conversion: the encoded bytes and the accumulated losses. ## Properties [Section titled “Properties”](#properties) ### bytes [Section titled “bytes”](#bytes) > `readonly` **bytes**: `Uint8Array` Defined in: [src/core/converter/facade.ts:73](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L73) The encoded output bytes (PDF / SVG / HTML / DOCX / XLSX). *** ### losses [Section titled “losses”](#losses) > `readonly` **losses**: [`LossReport`](/api/index/type-aliases/lossreport/) Defined in: [src/core/converter/facade.ts:75](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L75) Every [Loss](/api/index/interfaces/loss/) recorded while reading the source and writing the target. # CreateConverterOptions Defined in: [src/core/converter/facade.ts:117](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L117) Options for [createConverter](/api/index/functions/createconverter/). ## Properties [Section titled “Properties”](#properties) ### readers? [Section titled “readers?”](#readers) > `readonly` `optional` **readers?**: readonly [`DocumentReader`](/api/index/interfaces/documentreader/)<`SourceDoc`>\[] Defined in: [src/core/converter/facade.ts:119](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/facade.ts#L119) Override / extend the reader registry (defaults to DEFAULT\_READERS). # DocumentInfo Defined in: [src/core/document-model/types.ts:992](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L992) Document metadata (PDF `/Info`-shaped, sourced from `docProps/core.xml` and/or caller options). Lives in the model so FlowDoc can carry it format-neutrally. ## Properties [Section titled “Properties”](#properties) ### author? [Section titled “author?”](#author) > `readonly` `optional` **author?**: `string` Defined in: [src/core/document-model/types.ts:994](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L994) *** ### creationDate? [Section titled “creationDate?”](#creationdate) > `readonly` `optional` **creationDate?**: `Date` Defined in: [src/core/document-model/types.ts:1001](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L1001) ISO 8601 date; converted to PDF date format (`D:YYYYMMDDHHmmSS`). *** ### creator? [Section titled “creator?”](#creator) > `readonly` `optional` **creator?**: `string` Defined in: [src/core/document-model/types.ts:997](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L997) *** ### keywords? [Section titled “keywords?”](#keywords) > `readonly` `optional` **keywords?**: `string` Defined in: [src/core/document-model/types.ts:996](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L996) *** ### modificationDate? [Section titled “modificationDate?”](#modificationdate) > `readonly` `optional` **modificationDate?**: `Date` Defined in: [src/core/document-model/types.ts:1002](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L1002) *** ### producer? [Section titled “producer?”](#producer) > `readonly` `optional` **producer?**: `string` Defined in: [src/core/document-model/types.ts:999](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L999) Producer; defaults to “Ream” if not provided. *** ### subject? [Section titled “subject?”](#subject) > `readonly` `optional` **subject?**: `string` Defined in: [src/core/document-model/types.ts:995](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L995) *** ### title? [Section titled “title?”](#title) > `readonly` `optional` **title?**: `string` Defined in: [src/core/document-model/types.ts:993](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/document-model/types.ts#L993) # DocumentReader Defined in: [src/core/ir/adapters.ts:31](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L31) A synchronous reader for one source format (ir-design §7). All async I/O — font fetching, resource loading — lives in the conversion facade, not here. The adapter contracts may change until they stabilize against three or more adapters. Experimental This API should not be used in production and may be trimmed from a public release. ## Type Parameters [Section titled “Type Parameters”](#type-parameters) ### TDoc [Section titled “TDoc”](#tdoc) `TDoc` = [`FlowDoc`](/api/index/interfaces/flowdoc/) ## Properties [Section titled “Properties”](#properties) ### id [Section titled “id”](#id) > `readonly` **id**: `string` Defined in: [src/core/ir/adapters.ts:33](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L33) Format id: ‘docx’, ‘xlsx’, ‘pdf’, … Experimental This API should not be used in production and may be trimmed from a public release. *** ### produces [Section titled “produces”](#produces) > `readonly` **produces**: `"flow"` | `"page"` | `"sheet"` Defined in: [src/core/ir/adapters.ts:35](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L35) Which tree this reader produces (‘sheet’ projects to flow at the boundary). Experimental This API should not be used in production and may be trimmed from a public release. *** ### read [Section titled “read”](#read) > **read**: (`bytes`, `opts?`) => [`ReadResult`](/api/index/interfaces/readresult/)<`TDoc`> Defined in: [src/core/ir/adapters.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L40) Experimental This API should not be used in production and may be trimmed from a public release. #### Parameters [Section titled “Parameters”](#parameters) ##### bytes [Section titled “bytes”](#bytes) `Uint8Array` ##### opts? [Section titled “opts?”](#opts) [`ReadOptions`](/api/index/interfaces/readoptions/) #### Returns [Section titled “Returns”](#returns) [`ReadResult`](/api/index/interfaces/readresult/)<`TDoc`> *** ### sniff [Section titled “sniff”](#sniff) > **sniff**: (`bytes`) => `boolean` Defined in: [src/core/ir/adapters.ts:39](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L39) Cheap format detection (magic bytes / container markers). Experimental This API should not be used in production and may be trimmed from a public release. #### Parameters [Section titled “Parameters”](#parameters-1) ##### bytes [Section titled “bytes”](#bytes-1) `Uint8Array` #### Returns [Section titled “Returns”](#returns-1) `boolean` *** ### supports [Section titled “supports”](#supports) > `readonly` **supports**: `ReadonlySet`<`string`> Defined in: [src/core/ir/adapters.ts:37](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L37) Feature vocabulary this reader understands (capability matrix source). Experimental This API should not be used in production and may be trimmed from a public release. # DocumentWriter Defined in: [src/core/ir/adapters.ts:62](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L62) A synchronous writer for one output format (ir-design §7). The adapter contracts may change until they stabilize against three or more adapters. Experimental This API should not be used in production and may be trimmed from a public release. ## Type Parameters [Section titled “Type Parameters”](#type-parameters) ### TDoc [Section titled “TDoc”](#tdoc) `TDoc` ## Properties [Section titled “Properties”](#properties) ### consumes [Section titled “consumes”](#consumes) > `readonly` **consumes**: `"flow"` | `"page"` | `"sheet"` Defined in: [src/core/ir/adapters.ts:66](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L66) Which tree this writer consumes (‘sheet’ for the native grid writer). Experimental This API should not be used in production and may be trimmed from a public release. *** ### id [Section titled “id”](#id) > `readonly` **id**: `string` Defined in: [src/core/ir/adapters.ts:64](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L64) Output format id: ‘pdf’, ‘svg’, ‘html’, ‘docx’, ‘xlsx’, … Experimental This API should not be used in production and may be trimmed from a public release. *** ### supports [Section titled “supports”](#supports) > `readonly` **supports**: `ReadonlySet`<`string`> Defined in: [src/core/ir/adapters.ts:68](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L68) Feature vocabulary this writer understands. Experimental This API should not be used in production and may be trimmed from a public release. *** ### write [Section titled “write”](#write) > **write**: (`doc`, `opts?`) => [`WriteResult`](/api/index/interfaces/writeresult/) Defined in: [src/core/ir/adapters.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L70) Encode `doc` to the output bytes, collecting any losses. Experimental This API should not be used in production and may be trimmed from a public release. #### Parameters [Section titled “Parameters”](#parameters) ##### doc [Section titled “doc”](#doc) `TDoc` ##### opts? [Section titled “opts?”](#opts) [`WriteOptions`](/api/index/interfaces/writeoptions/) #### Returns [Section titled “Returns”](#returns) [`WriteResult`](/api/index/interfaces/writeresult/) # FetchFontSetOptions Defined in: [src/core/fonts/remote-fonts.ts:160](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L160) Options for [fetchFontSet](/api/index/functions/fetchfontset/). ## Properties [Section titled “Properties”](#properties) ### family? [Section titled “family?”](#family) > `readonly` `optional` **family?**: `string` Defined in: [src/core/fonts/remote-fonts.ts:162](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L162) Document font family name to substitute, or a curated [FamilyKey](/api/index/type-aliases/familykey/) directly. *** ### fetch? [Section titled “fetch?”](#fetch) > `readonly` `optional` **fetch?**: [`FetchLike`](/api/index/type-aliases/fetchlike/) Defined in: [src/core/fonts/remote-fonts.ts:164](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L164) Injectable fetch (defaults to the global `fetch`); lets tests run offline. # FillItem Defined in: [src/layout/page-doc.ts:210](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L210) A filled rectangle (cell shading); `(x, y)` is its top-left corner. ## Extends [Section titled “Extends”](#extends) * [`PageItemBase`](/api/index/interfaces/pageitembase/) ## Properties [Section titled “Properties”](#properties) ### artifact? [Section titled “artifact?”](#artifact) > `readonly` `optional` **artifact?**: `"pagination"` Defined in: [src/layout/page-doc.ts:185](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L185) Tagged PDF: explicitly mark this item as a pagination artifact (running header/footer, §14.8.2.2.2). Distinguishes header/footer text from not-yet-tagged body content so it is typed `/Artifact /Pagination`, never a P. #### Inherited from [Section titled “Inherited from”](#inherited-from) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`artifact`](/api/index/interfaces/pageitembase/#artifact) *** ### fillColorHex [Section titled “fillColorHex”](#fillcolorhex) > `readonly` **fillColorHex**: `string` Defined in: [src/layout/page-doc.ts:216](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L216) *** ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:215](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L215) *** ### structId? [Section titled “structId?”](#structid) > `readonly` `optional` **structId?**: `number` Defined in: [src/layout/page-doc.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L179) Tagged PDF (§14.8): the logical structure node this item’s content belongs to. Set only on body content in tagged mode; undefined text in the line pass is treated as an artifact. Ignored when not tagging. #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`structId`](/api/index/interfaces/pageitembase/#structid) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"fill"` Defined in: [src/layout/page-doc.ts:211](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L211) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:214](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L214) *** ### x [Section titled “x”](#x) > `readonly` **x**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:212](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L212) *** ### y [Section titled “y”](#y) > `readonly` **y**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:213](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L213) # FlowDoc Defined in: [src/core/ir/flow.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L40) The semantic IR tree (ir-design §5): everything a reader extracts from the document bytes, format-neutrally — the flow `body` plus its document-scoped companions (styles, numbering, header/footer bands, notes, charts, binary resources, metadata). Caller-supplied conversion options (fonts, PDF/A profile, signature, …) are deliberately NOT part of the tree; they parameterize transforms, not the document. `body` carries FINAL effective properties — readers materialize list markers and resolve the style cascade while building it — so render projections must not re-apply `styles`/`numbering`, which remain only as round-trip material. ## Properties [Section titled “Properties”](#properties) ### body [Section titled “body”](#body) > `readonly` **body**: readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[] Defined in: [src/core/ir/flow.ts:44](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L44) The document flow content, carrying resolved, effective properties. *** ### charts? [Section titled “charts?”](#charts) > `readonly` `optional` **charts?**: `ReadonlyMap`<`string`, [`Chart`](/api/core/document-model/interfaces/chart/)> Defined in: [src/core/ir/flow.ts:64](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L64) Parsed charts keyed by relationship id (ChartBlock.chartRelId). *** ### comments? [Section titled “comments?”](#comments) > `readonly` `optional` **comments?**: `ReadonlyMap`<`string`, [`Comment`](/api/core/document-model/interfaces/comment/)> Defined in: [src/core/ir/flow.ts:62](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L62) §17.13.4 review comments by id, anchored from a run’s `commentRef`. *** ### embeddedFonts? [Section titled “embeddedFonts?”](#embeddedfonts) > `readonly` `optional` **embeddedFonts?**: `ReadonlyMap`<`string`, [`FontRegistry`](/api/index/classes/fontregistry/)> Defined in: [src/core/ir/flow.ts:68](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L68) Fonts embedded in the source document itself (docx fontTable), by name. *** ### endnotes? [Section titled “endnotes?”](#endnotes) > `readonly` `optional` **endnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/core/ir/flow.ts:60](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L60) *** ### footnotes? [Section titled “footnotes?”](#footnotes) > `readonly` `optional` **footnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/core/ir/flow.ts:59](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L59) §17.11 footnotes/endnotes content by id (separator stubs excluded). *** ### headersFooters? [Section titled “headersFooters?”](#headersfooters) > `readonly` `optional` **headersFooters?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/core/ir/flow.ts:57](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L57) *** ### info? [Section titled “info?”](#info) > `readonly` `optional` **info?**: [`DocumentInfo`](/api/index/interfaces/documentinfo/) Defined in: [src/core/ir/flow.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L70) Document metadata from docProps/core.xml. *** ### kind [Section titled “kind”](#kind) > `readonly` **kind**: `"flow"` Defined in: [src/core/ir/flow.ts:42](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L42) Discriminant for SourceDoc (a FlowDoc passes through projection). *** ### language? [Section titled “language?”](#language) > `readonly` `optional` **language?**: `string` Defined in: [src/core/ir/flow.ts:72](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L72) Document natural language hint (BCP-47), e.g. for tagged-PDF /Lang. *** ### numbering? [Section titled “numbering?”](#numbering) > `readonly` `optional` **numbering?**: [`Numbering`](/api/core/document-model/interfaces/numbering/) Defined in: [src/core/ir/flow.ts:56](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L56) Raw numbering definitions (round-trip material). `body` already carries the materialized list markers — readers apply numbering as a FlowDoc transform, so render projections must not re-apply it. *** ### resources [Section titled “resources”](#resources) > `readonly` **resources**: [`ResourceStore`](/api/index/classes/resourcestore/) Defined in: [src/core/ir/flow.ts:66](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L66) Content-addressed binary resources (images). *** ### section? [Section titled “section?”](#section) > `readonly` `optional` **section?**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/) Defined in: [src/core/ir/flow.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L48) Single-section page geometry (xlsx print setup). *** ### sections [Section titled “sections”](#sections) > `readonly` **sections**: readonly [`Section`](/api/core/document-model/interfaces/section/)\[] Defined in: [src/core/ir/flow.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L46) Multi-section page geometry (docx). Empty for single-geometry sources. *** ### styles [Section titled “styles”](#styles) > `readonly` **styles**: [`StyleSheet`](/api/core/document-model/interfaces/stylesheet/) Defined in: [src/core/ir/flow.ts:50](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/flow.ts#L50) Resolved style sheet, kept as round-trip material (already folded into `body`). # FontBytesByVariant Defined in: [src/core/font/font-registry.ts:38](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L38) Raw TTF/OTF bytes per style variant; only `regular` is required. ## Properties [Section titled “Properties”](#properties) ### bold? [Section titled “bold?”](#bold) > `readonly` `optional` **bold?**: `Uint8Array`<`ArrayBufferLike`> Defined in: [src/core/font/font-registry.ts:42](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L42) The bold face, if available. *** ### boldItalic? [Section titled “boldItalic?”](#bolditalic) > `readonly` `optional` **boldItalic?**: `Uint8Array`<`ArrayBufferLike`> Defined in: [src/core/font/font-registry.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L46) The bold-italic face, if available. *** ### italic? [Section titled “italic?”](#italic) > `readonly` `optional` **italic?**: `Uint8Array`<`ArrayBufferLike`> Defined in: [src/core/font/font-registry.ts:44](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L44) The italic face, if available. *** ### regular [Section titled “regular”](#regular) > `readonly` **regular**: `Uint8Array` Defined in: [src/core/font/font-registry.ts:40](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L40) The regular (upright, normal-weight) face — required. # FontProvider Defined in: [src/core/fonts/provider.ts:44](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L44) One stage in the font-resolution chain (ir-design §8). ## Properties [Section titled “Properties”](#properties) ### id [Section titled “id”](#id) > `readonly` **id**: `string` Defined in: [src/core/fonts/provider.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L46) Provider id: `'embedded'` | `'caller'` | `'local'` | `'remote'` | a custom id. *** ### resolve [Section titled “resolve”](#resolve) > **resolve**: (`req`) => `Promise`<[`FontAnswer`](/api/index/type-aliases/fontanswer/)> Defined in: [src/core/fonts/provider.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L48) Resolve a request to bytes, or [NO\_FONT](/api/index/variables/no_font/) to defer to the next provider. #### Parameters [Section titled “Parameters”](#parameters) ##### req [Section titled “req”](#req) [`FontRequest`](/api/index/interfaces/fontrequest/) #### Returns [Section titled “Returns”](#returns) `Promise`<[`FontAnswer`](/api/index/type-aliases/fontanswer/)> # FontRequest Defined in: [src/core/fonts/provider.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L19) A font resolution request: the wanted family and style. ## Properties [Section titled “Properties”](#properties) ### bold [Section titled “bold”](#bold) > `readonly` **bold**: `boolean` Defined in: [src/core/fonts/provider.ts:23](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L23) Whether a bold face is wanted. *** ### family? [Section titled “family?”](#family) > `readonly` `optional` **family?**: `string` Defined in: [src/core/fonts/provider.ts:21](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L21) Family name as the document references it (e.g. “Times New Roman”). *** ### italic [Section titled “italic”](#italic) > `readonly` **italic**: `boolean` Defined in: [src/core/fonts/provider.ts:25](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L25) Whether an italic face is wanted. # Hyphenator Defined in: [src/core/hyphenation/liang.ts:60](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L60) A configured hyphenator for one language. ## Properties [Section titled “Properties”](#properties) ### hyphenate [Section titled “hyphenate”](#hyphenate) > **hyphenate**: (`word`) => `number`\[] Defined in: [src/core/hyphenation/liang.ts:66](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L66) Return the 0-indexed break positions inside `word`. A position `p` means the word can be split between `word[p-1]` and `word[p]`; e.g. “computer” with breaks `[3,5]` → “com·pu·ter”. #### Parameters [Section titled “Parameters”](#parameters) ##### word [Section titled “word”](#word) `string` #### Returns [Section titled “Returns”](#returns) `number`\[] # HyphenatorOptions Defined in: [src/core/hyphenation/liang.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L70) Options for [createHyphenator](/api/index/functions/createhyphenator/). ## Properties [Section titled “Properties”](#properties) ### exceptions? [Section titled “exceptions?”](#exceptions) > `readonly` `optional` **exceptions?**: readonly `string`\[] Defined in: [src/core/hyphenation/liang.ts:79](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L79) Explicit exceptions that override pattern output. Each is a word with hyphens marking the allowed breaks, e.g. `"as-so-ciate"`. *** ### leftMin? [Section titled “leftMin?”](#leftmin) > `readonly` `optional` **leftMin?**: `number` Defined in: [src/core/hyphenation/liang.ts:72](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L72) Minimum characters before the first break (TeX default: 2). *** ### rightMin? [Section titled “rightMin?”](#rightmin) > `readonly` `optional` **rightMin?**: `number` Defined in: [src/core/hyphenation/liang.ts:74](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/liang.ts#L74) Minimum characters after the last break (TeX default: 3 for English, often 2 elsewhere). # ImageItem Defined in: [src/layout/page-doc.ts:223](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L223) A placed raster image (resource name binds to the page XObject dict); `(x, y)` is its top-left corner. ## Extends [Section titled “Extends”](#extends) * [`PageItemBase`](/api/index/interfaces/pageitembase/) ## Properties [Section titled “Properties”](#properties) ### artifact? [Section titled “artifact?”](#artifact) > `readonly` `optional` **artifact?**: `"pagination"` Defined in: [src/layout/page-doc.ts:185](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L185) Tagged PDF: explicitly mark this item as a pagination artifact (running header/footer, §14.8.2.2.2). Distinguishes header/footer text from not-yet-tagged body content so it is typed `/Artifact /Pagination`, never a P. #### Inherited from [Section titled “Inherited from”](#inherited-from) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`artifact`](/api/index/interfaces/pageitembase/#artifact) *** ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:228](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L228) *** ### imageResourceName [Section titled “imageResourceName”](#imageresourcename) > `readonly` **imageResourceName**: `string` Defined in: [src/layout/page-doc.ts:229](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L229) *** ### structId? [Section titled “structId?”](#structid) > `readonly` `optional` **structId?**: `number` Defined in: [src/layout/page-doc.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L179) Tagged PDF (§14.8): the logical structure node this item’s content belongs to. Set only on body content in tagged mode; undefined text in the line pass is treated as an artifact. Ignored when not tagging. #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`structId`](/api/index/interfaces/pageitembase/#structid) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"image"` Defined in: [src/layout/page-doc.ts:224](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L224) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:227](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L227) *** ### x [Section titled “x”](#x) > `readonly` **x**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:225](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L225) *** ### y [Section titled “y”](#y) > `readonly` **y**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:226](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L226) # LaidOutDocument Defined in: [src/layout/page-doc.ts:294](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L294) ## Properties [Section titled “Properties”](#properties) ### fontResources [Section titled “fontResources”](#fontresources) > `readonly` **fontResources**: `Map`<`string`, `FontResource`> Defined in: [src/layout/page-doc.ts:298](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L298) *** ### imageResources [Section titled “imageResources”](#imageresources) > `readonly` **imageResources**: `Map`<[`ResourceId`](/api/index/type-aliases/resourceid/), `ImageResource`> Defined in: [src/layout/page-doc.ts:299](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L299) *** ### pages [Section titled “pages”](#pages) > `readonly` **pages**: readonly [`LaidOutPage`](/api/index/interfaces/laidoutpage/)\[] Defined in: [src/layout/page-doc.ts:295](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L295) *** ### resources [Section titled “resources”](#resources) > `readonly` **resources**: [`ResourceStore`](/api/index/classes/resourcestore/) Defined in: [src/layout/page-doc.ts:297](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L297) # LaidOutPage Defined in: [src/layout/page-doc.ts:302](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L302) ## Properties [Section titled “Properties”](#properties) ### commands [Section titled “commands”](#commands) > `readonly` **commands**: [`PageItem`](/api/index/type-aliases/pageitem/)\[] Defined in: [src/layout/page-doc.ts:303](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L303) *** ### height [Section titled “height”](#height) > `readonly` **height**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:305](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L305) *** ### width [Section titled “width”](#width) > `readonly` **width**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:304](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L304) # Loss Defined in: [src/core/ir/loss.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L19) A single conversion loss: something the pipeline dropped, degraded or substituted. ## Properties [Section titled “Properties”](#properties) ### detail [Section titled “detail”](#detail) > `readonly` **detail**: `string` Defined in: [src/core/ir/loss.ts:25](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L25) Human-readable specifics: what exactly happened to what. *** ### feature [Section titled “feature”](#feature) > `readonly` **feature**: `string` Defined in: [src/core/ir/loss.ts:23](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L23) The affected [Feature](/api/index/type-aliases/feature/) (drives the capability/loss matrix). *** ### severity [Section titled “severity”](#severity) > `readonly` **severity**: [`LossSeverity`](/api/index/type-aliases/lossseverity/) Defined in: [src/core/ir/loss.ts:21](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L21) How badly the content was affected. *** ### where? [Section titled “where?”](#where) > `readonly` `optional` **where?**: `string` Defined in: [src/core/ir/loss.ts:27](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L27) Optional location hint (page/paragraph/sheet reference). # NativeBag Defined in: [src/core/ir/index.ts:33](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/index.ts#L33) Passthrough bag for the round-trip door (ir-design §4): a node MAY carry the source format’s raw fragment keyed by format id (e.g. `{ ooxml: }`). Writers for other formats ignore it; a same-format writer may use it to reproduce constructs the neutral core does not model. v1 promises only cross-format fidelity — this keeps the door open without promising more. ## Indexable [Section titled “Indexable”](#indexable) > \[`formatId`: `string`]: `unknown` # PageItemBase Defined in: [src/layout/page-doc.ts:173](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L173) The fields every [PageItem](/api/index/type-aliases/pageitem/) shares (ir-design §6, frozen at stage 6.4): the positioned, layout-output vocabulary a page is made of. Page-frame geometry is branded `Pt` (PostScript points) with a TOP-LEFT origin, y growing downward (like CSS/SVG); the PDF emitter converts into PDF’s native y-up frame at emission. Offsets measured from a text baseline (math/inline-image boxes inside a Line) and styling magnitudes (font/stroke sizes) stay plain numbers — they are not page-frame coordinates. ## Extended by [Section titled “Extended by”](#extended-by) * [`TextLineItem`](/api/index/interfaces/textlineitem/) * [`BorderItem`](/api/index/interfaces/borderitem/) * [`FillItem`](/api/index/interfaces/fillitem/) * [`ImageItem`](/api/index/interfaces/imageitem/) * [`ShapeItem`](/api/index/interfaces/shapeitem/) ## Properties [Section titled “Properties”](#properties) ### artifact? [Section titled “artifact?”](#artifact) > `readonly` `optional` **artifact?**: `"pagination"` Defined in: [src/layout/page-doc.ts:185](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L185) Tagged PDF: explicitly mark this item as a pagination artifact (running header/footer, §14.8.2.2.2). Distinguishes header/footer text from not-yet-tagged body content so it is typed `/Artifact /Pagination`, never a P. *** ### structId? [Section titled “structId?”](#structid) > `readonly` `optional` **structId?**: `number` Defined in: [src/layout/page-doc.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L179) Tagged PDF (§14.8): the logical structure node this item’s content belongs to. Set only on body content in tagged mode; undefined text in the line pass is treated as an artifact. Ignored when not tagging. # ParsedTtf Defined in: [src/core/font/ttf-parser.ts:41](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L41) A parsed TrueType / OpenType font (ISO/IEC 14496-22): metrics, the cmap-derived codepoint→glyph mapping, OpenType layout maps (ligatures, kerning, Arabic joining) and the raw bytes for embedding. Glyph outlines (glyf/CFF) are not decoded — the whole font is embedded in the PDF /FontFile2. ## Properties [Section titled “Properties”](#properties) ### advanceWidths [Section titled “advanceWidths”](#advancewidths) > `readonly` **advanceWidths**: readonly `number`\[] Defined in: [src/core/font/ttf-parser.ts:77](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L77) *** ### ascender [Section titled “ascender”](#ascender) > `readonly` **ascender**: `number` Defined in: [src/core/font/ttf-parser.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L48) *** ### capHeight [Section titled “capHeight”](#capheight) > `readonly` **capHeight**: `number` Defined in: [src/core/font/ttf-parser.ts:55](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L55) *** ### descender [Section titled “descender”](#descender) > `readonly` **descender**: `number` Defined in: [src/core/font/ttf-parser.ts:49](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L49) *** ### flags [Section titled “flags”](#flags) > `readonly` **flags**: `number` Defined in: [src/core/font/ttf-parser.ts:73](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L73) *** ### fontBBox [Section titled “fontBBox”](#fontbbox) > `readonly` **fontBBox**: readonly \[`number`, `number`, `number`, `number`] Defined in: [src/core/font/ttf-parser.ts:47](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L47) *** ### glyphForCodepoint [Section titled “glyphForCodepoint”](#glyphforcodepoint) > `readonly` **glyphForCodepoint**: (`cp`) => `number` Defined in: [src/core/font/ttf-parser.ts:78](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L78) #### Parameters [Section titled “Parameters”](#parameters) ##### cp [Section titled “cp”](#cp) `number` #### Returns [Section titled “Returns”](#returns) `number` *** ### glyphOffsets [Section titled “glyphOffsets”](#glyphoffsets) > `readonly` **glyphOffsets**: readonly `number`\[] Defined in: [src/core/font/ttf-parser.ts:76](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L76) *** ### indexToLocFormat [Section titled “indexToLocFormat”](#indextolocformat) > `readonly` **indexToLocFormat**: `0` | `1` Defined in: [src/core/font/ttf-parser.ts:75](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L75) *** ### italicAngle [Section titled “italicAngle”](#italicangle) > `readonly` **italicAngle**: `number` Defined in: [src/core/font/ttf-parser.ts:71](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L71) *** ### joiningForms [Section titled “joiningForms”](#joiningforms) > `readonly` **joiningForms**: `ArabicJoiningForms` Defined in: [src/core/font/ttf-parser.ts:87](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L87) Arabic cursive-joining substitutions (init/medi/fina). Empty for non-Arabic fonts, so the shaper leaves output unchanged. *** ### kerning [Section titled “kerning”](#kerning) > `readonly` **kerning**: `KerningMap` Defined in: [src/core/font/ttf-parser.ts:82](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L82) OpenType pair kerning: `"gid1,gid2"` → advance adjustment in font units. *** ### ligatures [Section titled “ligatures”](#ligatures) > `readonly` **ligatures**: `LigatureMap` Defined in: [src/core/font/ttf-parser.ts:80](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L80) OpenType ligature substitutions: input GID sequence `"gid1,gid2[,gid3…]"` → output GID. *** ### lineGap [Section titled “lineGap”](#linegap) > `readonly` **lineGap**: `number` Defined in: [src/core/font/ttf-parser.ts:54](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L54) hhea line gap (font units); with ascender/descender it forms the hhea vertical triple that drives the `'libreoffice'` line-height profile (E-PARITY). *** ### numGlyphs [Section titled “numGlyphs”](#numglyphs) > `readonly` **numGlyphs**: `number` Defined in: [src/core/font/ttf-parser.ts:74](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L74) *** ### postScriptName [Section titled “postScriptName”](#postscriptname) > `readonly` **postScriptName**: `string` Defined in: [src/core/font/ttf-parser.ts:45](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L45) *** ### raw [Section titled “raw”](#raw) > `readonly` **raw**: `Uint8Array` Defined in: [src/core/font/ttf-parser.ts:42](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L42) *** ### sfntVersion [Section titled “sfntVersion”](#sfntversion) > `readonly` **sfntVersion**: `number` Defined in: [src/core/font/ttf-parser.ts:43](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L43) *** ### stemV [Section titled “stemV”](#stemv) > `readonly` **stemV**: `number` Defined in: [src/core/font/ttf-parser.ts:72](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L72) *** ### tables [Section titled “tables”](#tables) > `readonly` **tables**: `ReadonlyMap`<`string`, `TtfTableInfo`> Defined in: [src/core/font/ttf-parser.ts:44](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L44) *** ### unitsPerEm [Section titled “unitsPerEm”](#unitsperem) > `readonly` **unitsPerEm**: `number` Defined in: [src/core/font/ttf-parser.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L46) *** ### vmetrics [Section titled “vmetrics”](#vmetrics) > `readonly` **vmetrics**: `object` Defined in: [src/core/font/ttf-parser.ts:63](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L63) E-PARITY line-height metrics: OS/2 win/typo verticals (font units) selected by layout profile. `'word'` uses winAscent/winDescent (the GDI cell box); `'libreoffice'` uses the hhea triple above, or typo\* when `useTypoMetrics` is set. All fall back to hhea when the font has no OS/2 table. #### typoAscent [Section titled “typoAscent”](#typoascent) > `readonly` **typoAscent**: `number` #### typoDescent [Section titled “typoDescent”](#typodescent) > `readonly` **typoDescent**: `number` #### typoLineGap [Section titled “typoLineGap”](#typolinegap) > `readonly` **typoLineGap**: `number` #### useTypoMetrics [Section titled “useTypoMetrics”](#usetypometrics) > `readonly` **useTypoMetrics**: `boolean` #### winAscent [Section titled “winAscent”](#winascent) > `readonly` **winAscent**: `number` #### winDescent [Section titled “winDescent”](#windescent) > `readonly` **winDescent**: `number` *** ### xHeight [Section titled “xHeight”](#xheight) > `readonly` **xHeight**: `number` Defined in: [src/core/font/ttf-parser.ts:56](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/ttf-parser.ts#L56) # PdfEncryptOptions Defined in: [src/pdf/encryption.ts:30](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L30) Passwords and permissions for preparePdfEncryption. ## Properties [Section titled “Properties”](#properties) ### ownerPassword? [Section titled “ownerPassword?”](#ownerpassword) > `readonly` `optional` **ownerPassword?**: `string` Defined in: [src/pdf/encryption.ts:34](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L34) Overrides the permission restrictions. Defaults to the user password. *** ### permissions? [Section titled “permissions?”](#permissions) > `readonly` `optional` **permissions?**: [`PdfPermissions`](/api/index/interfaces/pdfpermissions/) Defined in: [src/pdf/encryption.ts:35](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L35) *** ### userPassword? [Section titled “userPassword?”](#userpassword) > `readonly` `optional` **userPassword?**: `string` Defined in: [src/pdf/encryption.ts:32](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L32) Required to OPEN the document. Empty string = opens without a prompt. # PdfPermissions Defined in: [src/pdf/encryption.ts:12](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L12) The user-access permission flags (`/P`, §7.6.4.4.7); each defaults to allowed. ## Properties [Section titled “Properties”](#properties) ### annotating? [Section titled “annotating?”](#annotating) > `readonly` `optional` **annotating?**: `boolean` Defined in: [src/pdf/encryption.ts:20](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L20) Bit 6 — add/modify annotations (default true). *** ### contentAccessibility? [Section titled “contentAccessibility?”](#contentaccessibility) > `readonly` `optional` **contentAccessibility?**: `boolean` Defined in: [src/pdf/encryption.ts:24](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L24) Bit 10 — extraction for accessibility (default true; forced by PDF/UA). *** ### copying? [Section titled “copying?”](#copying) > `readonly` `optional` **copying?**: `boolean` Defined in: [src/pdf/encryption.ts:18](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L18) Bit 5 — copy text and graphics (default true). *** ### documentAssembly? [Section titled “documentAssembly?”](#documentassembly) > `readonly` `optional` **documentAssembly?**: `boolean` Defined in: [src/pdf/encryption.ts:26](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L26) Bit 11 — assemble (insert/rotate/delete pages) (default true). *** ### fillingForms? [Section titled “fillingForms?”](#fillingforms) > `readonly` `optional` **fillingForms?**: `boolean` Defined in: [src/pdf/encryption.ts:22](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L22) Bit 9 — fill in form fields (default true). *** ### modifying? [Section titled “modifying?”](#modifying) > `readonly` `optional` **modifying?**: `boolean` Defined in: [src/pdf/encryption.ts:16](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L16) Bit 4 — modify contents (default true). *** ### printing? [Section titled “printing?”](#printing) > `readonly` `optional` **printing?**: `boolean` Defined in: [src/pdf/encryption.ts:14](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/encryption.ts#L14) Bit 3 — print the document (default true). # ReadOptions Defined in: [src/core/ir/adapters.ts:11](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L11) Reader-call options. Open-ended; per-reader limits live in the readers. ## Indexable [Section titled “Indexable”](#indexable) > \[`key`: `string`]: `unknown` Reserved for reader-specific knobs (limits live in the readers). # ReadResult Defined in: [src/core/ir/adapters.ts:17](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L17) The result of [DocumentReader.read](/api/index/interfaces/documentreader/#read): the parsed tree plus any losses. ## Type Parameters [Section titled “Type Parameters”](#type-parameters) ### TDoc [Section titled “TDoc”](#tdoc) `TDoc` ## Properties [Section titled “Properties”](#properties) ### doc [Section titled “doc”](#doc) > `readonly` **doc**: `TDoc` Defined in: [src/core/ir/adapters.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L19) The parsed document tree. *** ### losses [Section titled “losses”](#losses) > `readonly` **losses**: [`LossReport`](/api/index/type-aliases/lossreport/) Defined in: [src/core/ir/adapters.ts:21](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L21) Losses recorded while reading. # ReamConvertOptions Defined in: [src/core/converter/ream.ts:62](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L62) Options for [Ream.convert](/api/index/classes/ream/#convert) and [Ream.convertWithReport](/api/index/classes/ream/#convertwithreport). Extends the low-level [StyledRenderOptions](/api/index/interfaces/styledrenderoptions/) (minus the font `registry` and `styles`, which Ream builds itself) with font resolution and source-touching conveniences. ## Extends [Section titled “Extends”](#extends) * `Omit`<[`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/), `"registry"` | `"styles"`> ## Properties [Section titled “Properties”](#properties) ### attachments? [Section titled “attachments?”](#attachments) > `readonly` `optional` **attachments?**: readonly `AttachedFile`\[] Defined in: [src/layout/styled-layout.ts:290](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L290) Files to embed as associated files (catalog `/AF` + `/Names` `/EmbeddedFiles`). Only emitted for plain PDF and PDF/A-3 (PDF/A-1/2 forbid arbitrary embedded files); ignored for PDF/A-1/2. The docx/xlsx converters can embed the source document automatically via `embedSource`. #### Inherited from [Section titled “Inherited from”](#inherited-from) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`attachments`](/api/index/interfaces/styledrenderoptions/#attachments) *** ### charts? [Section titled “charts?”](#charts) > `readonly` `optional` **charts?**: `ReadonlyMap`<`string`, [`Chart`](/api/core/document-model/interfaces/chart/)> Defined in: [src/layout/styled-layout.ts:231](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L231) Parsed charts keyed by relationship id (`ChartBlock.chartRelId`). Supplied by the converter, which resolves the chart parts from the package. #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`charts`](/api/index/interfaces/styledrenderoptions/#charts) *** ### commentAnnotations? [Section titled “commentAnnotations?”](#commentannotations) > `readonly` `optional` **commentAnnotations?**: `boolean` Defined in: [src/layout/styled-layout.ts:224](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L224) CM2b — also emit each comment as a native PDF `/Text` (sticky-note) annotation at its marker. Opt-in and interactive-only: suppressed under PDF/A and tagged output (where it would need annotation/appearance conformance), since the clickable marker + Comments section already carry the content there. #### Inherited from [Section titled “Inherited from”](#inherited-from-2) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`commentAnnotations`](/api/index/interfaces/styledrenderoptions/#commentannotations) *** ### comments? [Section titled “comments?”](#comments) > `readonly` `optional` **comments?**: `ReadonlyMap`<`string`, [`Comment`](/api/core/document-model/interfaces/comment/)> Defined in: [src/layout/styled-layout.ts:216](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L216) §17.13.4 review comments by id; rendered as superscript markers in text and a list after the body (after endnotes), each with its author/date. #### Inherited from [Section titled “Inherited from”](#inherited-from-3) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`comments`](/api/index/interfaces/styledrenderoptions/#comments) *** ### embeddedFonts? [Section titled “embeddedFonts?”](#embeddedfonts) > `readonly` `optional` **embeddedFonts?**: `ReadonlyMap`<`string`, [`FontRegistry`](/api/index/classes/fontregistry/)> Defined in: [src/layout/styled-layout.ts:188](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L188) The document’s OWN embedded fonts (`word/fonts/*.odttf`, de-obfuscated), keyed by normalized font name. A run whose `w:ascii` matches one renders with the real font — glyph-exact, no substitution. Highest priority. #### Inherited from [Section titled “Inherited from”](#inherited-from-4) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`embeddedFonts`](/api/index/interfaces/styledrenderoptions/#embeddedfonts) *** ### embedSource? [Section titled “embedSource?”](#embedsource) > `readonly` `optional` **embedSource?**: `boolean` Defined in: [src/core/converter/ream.ts:80](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L80) PDF/A-3 only: embed the parsed source file (`/AFRelationship /Source`). *** ### encrypt? [Section titled “encrypt?”](#encrypt) > `readonly` `optional` **encrypt?**: [`PdfEncryptOptions`](/api/index/interfaces/pdfencryptoptions/) Defined in: [src/layout/styled-layout.ts:283](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L283) §7.6 PDF encryption (AES-256, R6). Only honoured on the ASYNC conversion path (WebCrypto); mutually exclusive with `pdfA` (ISO 19005 forbids `/Encrypt`) and with signatures (v1). #### Inherited from [Section titled “Inherited from”](#inherited-from-5) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`encrypt`](/api/index/interfaces/styledrenderoptions/#encrypt) *** ### endnotes? [Section titled “endnotes?”](#endnotes) > `readonly` `optional` **endnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:211](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L211) #### Inherited from [Section titled “Inherited from”](#inherited-from-6) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`endnotes`](/api/index/interfaces/styledrenderoptions/#endnotes) *** ### fontBytes? [Section titled “fontBytes?”](#fontbytes) > `readonly` `optional` **fontBytes?**: `Uint8Array`<`ArrayBufferLike`> Defined in: [src/core/converter/ream.ts:66](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L66) Shorthand for supplying a single regular-variant font as raw bytes. *** ### fontFamily? [Section titled “fontFamily?”](#fontfamily) > `readonly` `optional` **fontFamily?**: `string` Defined in: [src/core/converter/ream.ts:68](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L68) Substitute family hint for the auto-download path. *** ### fontFetch? [Section titled “fontFetch?”](#fontfetch) > `readonly` `optional` **fontFetch?**: [`FetchLike`](/api/index/type-aliases/fetchlike/) Defined in: [src/core/converter/ream.ts:70](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L70) Injectable `fetch` for the auto-download path (defaults to the global `fetch`). *** ### fontProviders? [Section titled “fontProviders?”](#fontproviders) > `readonly` `optional` **fontProviders?**: readonly [`FontProvider`](/api/index/interfaces/fontprovider/)\[] Defined in: [src/core/converter/ream.ts:76](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L76) Font resolution chain (caller/embedded/local/remote), used when neither `fonts` nor `fontBytes` is given. A remote or local winner records a substitution [Loss](/api/index/interfaces/loss/). *** ### fonts? [Section titled “fonts?”](#fonts) > `readonly` `optional` **fonts?**: [`FontBytesByVariant`](/api/index/interfaces/fontbytesbyvariant/) Defined in: [src/core/converter/ream.ts:64](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L64) Explicit font bytes per variant (regular/bold/italic/bold-italic). *** ### footnotes? [Section titled “footnotes?”](#footnotes) > `readonly` `optional` **footnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:210](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L210) §17.11 notes content by id. Footnotes render in a reserved band at the bottom of the referencing page; endnotes flow after the body. #### Inherited from [Section titled “Inherited from”](#inherited-from-7) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`footnotes`](/api/index/interfaces/styledrenderoptions/#footnotes) *** ### headersFooters? [Section titled “headersFooters?”](#headersfooters) > `readonly` `optional` **headersFooters?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:205](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L205) Header/footer body content keyed by relationship id. #### Inherited from [Section titled “Inherited from”](#inherited-from-8) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`headersFooters`](/api/index/interfaces/styledrenderoptions/#headersfooters) *** ### hyphenator? [Section titled “hyphenator?”](#hyphenator) > `readonly` `optional` **hyphenator?**: [`Hyphenator`](/api/index/interfaces/hyphenator/) Defined in: [src/layout/styled-layout.ts:243](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L243) Optional Liang hyphenator. When set, each word token is split at allowed hyphenation positions and offered to Knuth-Plass as potential break points (with a small disincentive). Improves justified paragraph rags. #### Inherited from [Section titled “Inherited from”](#inherited-from-9) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`hyphenator`](/api/index/interfaces/styledrenderoptions/#hyphenator) *** ### info? [Section titled “info?”](#info) > `readonly` `optional` **info?**: [`DocumentInfo`](/api/index/interfaces/documentinfo/) Defined in: [src/layout/styled-layout.ts:248](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L248) Optional `/Info` dictionary metadata (ISO 32000-1 §14.3.3). Unset fields are omitted; if any field is set a PDF `/Info` entry is emitted. #### Inherited from [Section titled “Inherited from”](#inherited-from-10) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`info`](/api/index/interfaces/styledrenderoptions/#info) *** ### language? [Section titled “language?”](#language) > `readonly` `optional` **language?**: `string` Defined in: [src/layout/styled-layout.ts:277](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L277) Document natural language (BCP 47, e.g. `"en-US"`, `"ru-RU"`) for the tagged-PDF catalog `/Lang` (§14.9.2). Defaults to `"en-US"`. The docx converter fills this from the document’s default `w:lang`. #### Inherited from [Section titled “Inherited from”](#inherited-from-11) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`language`](/api/index/interfaces/styledrenderoptions/#language) *** ### layoutProfile? [Section titled “layoutProfile?”](#layoutprofile) > `readonly` `optional` **layoutProfile?**: `LayoutProfile` Defined in: [src/layout/styled-layout.ts:174](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L174) Renderer-compatibility profile for the line-height model (default `'ream'`). #### Inherited from [Section titled “Inherited from”](#inherited-from-12) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`layoutProfile`](/api/index/interfaces/styledrenderoptions/#layoutprofile) *** ### marginBottom? [Section titled “marginBottom?”](#marginbottom) > `readonly` `optional` **marginBottom?**: `number` Defined in: [src/layout/styled-layout.ts:237](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L237) #### Inherited from [Section titled “Inherited from”](#inherited-from-13) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginBottom`](/api/index/interfaces/styledrenderoptions/#marginbottom) *** ### marginLeft? [Section titled “marginLeft?”](#marginleft) > `readonly` `optional` **marginLeft?**: `number` Defined in: [src/layout/styled-layout.ts:234](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L234) #### Inherited from [Section titled “Inherited from”](#inherited-from-14) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginLeft`](/api/index/interfaces/styledrenderoptions/#marginleft) *** ### marginRight? [Section titled “marginRight?”](#marginright) > `readonly` `optional` **marginRight?**: `number` Defined in: [src/layout/styled-layout.ts:235](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L235) #### Inherited from [Section titled “Inherited from”](#inherited-from-15) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginRight`](/api/index/interfaces/styledrenderoptions/#marginright) *** ### marginTop? [Section titled “marginTop?”](#margintop) > `readonly` `optional` **marginTop?**: `number` Defined in: [src/layout/styled-layout.ts:236](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L236) #### Inherited from [Section titled “Inherited from”](#inherited-from-16) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`marginTop`](/api/index/interfaces/styledrenderoptions/#margintop) *** ### now? [Section titled “now?”](#now) > `readonly` `optional` **now?**: `Date` Defined in: [src/core/converter/ream.ts:90](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L90) Reference date for spreadsheet conditional-format `timePeriod` rules and for `TODAY()`/`NOW()` in `expression` rules (E-SHEET W9). Supplying it re-projects a spreadsheet source so those clock-relative rules resolve against this date — an explicit input, never the wall clock. Omitted, they no-op and the output is unchanged. *** ### numbering? [Section titled “numbering?”](#numbering) > `readonly` `optional` **numbering?**: [`Numbering`](/api/core/document-model/interfaces/numbering/) Defined in: [src/layout/styled-layout.ts:192](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L192) §17.9 numbering definitions; applied to list paragraphs before layout. #### Inherited from [Section titled “Inherited from”](#inherited-from-17) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`numbering`](/api/index/interfaces/styledrenderoptions/#numbering) *** ### pageHeight? [Section titled “pageHeight?”](#pageheight) > `readonly` `optional` **pageHeight?**: `number` Defined in: [src/layout/styled-layout.ts:233](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L233) #### Inherited from [Section titled “Inherited from”](#inherited-from-18) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pageHeight`](/api/index/interfaces/styledrenderoptions/#pageheight) *** ### pageWidth? [Section titled “pageWidth?”](#pagewidth) > `readonly` `optional` **pageWidth?**: `number` Defined in: [src/layout/styled-layout.ts:232](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L232) #### Inherited from [Section titled “Inherited from”](#inherited-from-19) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pageWidth`](/api/index/interfaces/styledrenderoptions/#pagewidth) *** ### pdfA? [Section titled “pdfA?”](#pdfa) > `readonly` `optional` **pdfA?**: `PdfALevel` Defined in: [src/layout/styled-layout.ts:258](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L258) When set, emit a PDF/A-conformant file: an OutputIntent with an embedded sRGB ICC profile, document XMP `/Metadata` (the pdfaid identifier), `/ID`, and subset-tagged fonts with a `/CIDSet`. The profile picks the rest: part 1 → PDF 1.4 + flattened image alpha (no transparency); part 2/3 → PDF 1.7 + preserved transparency (image `/SMask` + page group); part 3 → may carry embedded associated files (see `attachments`); level a → tagged (logical structure); b → visual; u → b + Unicode mapping. #### Inherited from [Section titled “Inherited from”](#inherited-from-20) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pdfA`](/api/index/interfaces/styledrenderoptions/#pdfa) *** ### pdfUA? [Section titled “pdfUA?”](#pdfua) > `readonly` `optional` **pdfUA?**: `boolean` Defined in: [src/layout/styled-layout.ts:271](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L271) PDF/UA-1 (ISO 14289-1): implies tagged; the XMP carries `pdfuaid:part=1` and the document always gets a title (AT announces it). Combines freely with `pdfA` level-a profiles. #### Inherited from [Section titled “Inherited from”](#inherited-from-21) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`pdfUA`](/api/index/interfaces/styledrenderoptions/#pdfua) *** ### registriesByFamily? [Section titled “registriesByFamily?”](#registriesbyfamily) > `readonly` `optional` **registriesByFamily?**: `ReadonlyMap`<[`FamilyKey`](/api/index/type-aliases/familykey/), [`FontRegistry`](/api/index/classes/fontregistry/)> Defined in: [src/layout/styled-layout.ts:182](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L182) Per-run font resolution: when supplied, each text run picks the registry of its declared family (sans→arimo / serif→tinos / mono→cousine via the run’s `w:ascii`) instead of always using `registry`. Absent ⇒ single-family (every run uses `registry`), byte-identical to before. `registry` remains the guaranteed fallback for math/chart/default glyphs and any missing family. #### Inherited from [Section titled “Inherited from”](#inherited-from-22) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`registriesByFamily`](/api/index/interfaces/styledrenderoptions/#registriesbyfamily) *** ### resources? [Section titled “resources?”](#resources) > `readonly` `optional` **resources?**: [`ResourceStore`](/api/index/classes/resourcestore/) Defined in: [src/layout/styled-layout.ts:226](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L226) Content-addressed binary store; image nodes reference it by [ResourceId](/api/index/type-aliases/resourceid/). #### Inherited from [Section titled “Inherited from”](#inherited-from-23) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`resources`](/api/index/interfaces/styledrenderoptions/#resources) *** ### section? [Section titled “section?”](#section) > `readonly` `optional` **section?**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/) Defined in: [src/layout/styled-layout.ts:197](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L197) Single-section legacy entry-point. If `sections` is set it takes precedence and `section` is ignored. #### Inherited from [Section titled “Inherited from”](#inherited-from-24) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`section`](/api/index/interfaces/styledrenderoptions/#section) *** ### sections? [Section titled “sections?”](#sections) > `readonly` `optional` **sections?**: readonly [`Section`](/api/core/document-model/interfaces/section/)\[] Defined in: [src/layout/styled-layout.ts:203](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L203) ECMA-376 §17.6 — ordered list of sections. Each section’s `endIndex` is the exclusive bound into the body array (section N covers `body[sections[N-1].endIndex..sections[N].endIndex)`). #### Inherited from [Section titled “Inherited from”](#inherited-from-25) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`sections`](/api/index/interfaces/styledrenderoptions/#sections) *** ### signature? [Section titled “signature?”](#signature) > `readonly` `optional` **signature?**: [`SignatureOptions`](/api/index/interfaces/signatureoptions/) Defined in: [src/core/converter/ream.ts:82](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L82) Digitally sign the output (ISO 32000 §12.8, WebCrypto). *** ### signaturePlaceholder? [Section titled “signaturePlaceholder?”](#signatureplaceholder) > `readonly` `optional` **signaturePlaceholder?**: [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/) Defined in: [src/layout/styled-layout.ts:297](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L297) Emit an (invisible) signature field + signature dictionary with placeholder `/ByteRange` and `/Contents` (ISO 32000 §12.8). The result is an UNSIGNED PDF; pass it to `signPdf()` to fill the placeholder with a real PKCS#7 signature. #### Inherited from [Section titled “Inherited from”](#inherited-from-26) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`signaturePlaceholder`](/api/index/interfaces/styledrenderoptions/#signatureplaceholder) *** ### strict? [Section titled “strict?”](#strict) > `readonly` `optional` **strict?**: `boolean` Defined in: [src/core/converter/ream.ts:78](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L78) Throw [ConversionLossError](/api/index/classes/conversionlosserror/) on the first loss instead of reporting it. *** ### tagged? [Section titled “tagged?”](#tagged) > `readonly` `optional` **tagged?**: `boolean` Defined in: [src/layout/styled-layout.ts:265](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L265) Emit a tagged PDF (ISO 32000-1 §14.8): a `/StructTreeRoot` describing reading order, marked content (BDC/EMC + MCID) on body text, and `/Artifact` marking of page decoration. Implied by `pdfA: 'PDF/A-1a'`. Independent of PDF/A otherwise (a plain tagged PDF is useful on its own). #### Inherited from [Section titled “Inherited from”](#inherited-from-27) [`StyledRenderOptions`](/api/index/interfaces/styledrenderoptions/).[`tagged`](/api/index/interfaces/styledrenderoptions/#tagged) # ReamParseOptions Defined in: [src/core/converter/ream.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L46) Options for [Ream.parse](/api/index/classes/ream/#parse). ## Properties [Section titled “Properties”](#properties) ### password? [Section titled “password?”](#password) > `readonly` `optional` **password?**: `string` Defined in: [src/core/converter/ream.ts:53](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L53) The user password for an encrypted PDF source (ISO 32000 §7.6). Defaults to the empty string, which opens the common permissions-only encryption (EP14). *** ### readers? [Section titled “readers?”](#readers) > `readonly` `optional` **readers?**: readonly [`DocumentReader`](/api/index/interfaces/documentreader/)<`SourceDoc`>\[] Defined in: [src/core/converter/ream.ts:48](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L48) Reader registry override; defaults to the built-in docx + xlsx readers. # ShapeItem Defined in: [src/layout/page-doc.ts:236](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L236) DrawingML vector geometry. `shape.transform` maps the shape’s local y-up frame into the top-left page frame (see `flipTransform`). ## Extends [Section titled “Extends”](#extends) * [`PageItemBase`](/api/index/interfaces/pageitembase/) ## Properties [Section titled “Properties”](#properties) ### artifact? [Section titled “artifact?”](#artifact) > `readonly` `optional` **artifact?**: `"pagination"` Defined in: [src/layout/page-doc.ts:185](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L185) Tagged PDF: explicitly mark this item as a pagination artifact (running header/footer, §14.8.2.2.2). Distinguishes header/footer text from not-yet-tagged body content so it is typed `/Artifact /Pagination`, never a P. #### Inherited from [Section titled “Inherited from”](#inherited-from) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`artifact`](/api/index/interfaces/pageitembase/#artifact) *** ### shape [Section titled “shape”](#shape) > `readonly` **shape**: `VectorShape` Defined in: [src/layout/page-doc.ts:238](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L238) *** ### structId? [Section titled “structId?”](#structid) > `readonly` `optional` **structId?**: `number` Defined in: [src/layout/page-doc.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L179) Tagged PDF (§14.8): the logical structure node this item’s content belongs to. Set only on body content in tagged mode; undefined text in the line pass is treated as an artifact. Ignored when not tagging. #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`structId`](/api/index/interfaces/pageitembase/#structid) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"shape"` Defined in: [src/layout/page-doc.ts:237](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L237) # SignatureOptions Defined in: [src/pdf/signature.ts:50](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L50) Converter convenience: everything needed to emit a placeholder and sign in one call. ## Extends [Section titled “Extends”](#extends) * [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`SignerCredentials`](/api/index/interfaces/signercredentials/) ## Properties [Section titled “Properties”](#properties) ### algorithm? [Section titled “algorithm?”](#algorithm) > `readonly` `optional` **algorithm?**: `"rsa"` | `"ecdsa"` Defined in: [src/pdf/signature.ts:43](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L43) Signature algorithm of the key (default `'rsa'`). #### Inherited from [Section titled “Inherited from”](#inherited-from) [`SignerCredentials`](/api/index/interfaces/signercredentials/).[`algorithm`](/api/index/interfaces/signercredentials/#algorithm) *** ### certificate [Section titled “certificate”](#certificate) > `readonly` **certificate**: `Uint8Array` Defined in: [src/pdf/signature.ts:36](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L36) Signer’s X.509 certificate (DER). #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`SignerCredentials`](/api/index/interfaces/signercredentials/).[`certificate`](/api/index/interfaces/signercredentials/#certificate) *** ### contactInfo? [Section titled “contactInfo?”](#contactinfo) > `readonly` `optional` **contactInfo?**: `string` Defined in: [src/pdf/signature.ts:24](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L24) #### Inherited from [Section titled “Inherited from”](#inherited-from-2) [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`contactInfo`](/api/index/interfaces/signatureplaceholder/#contactinfo) *** ### extraCertificates? [Section titled “extraCertificates?”](#extracertificates) > `readonly` `optional` **extraCertificates?**: readonly `Uint8Array`<`ArrayBufferLike`>\[] Defined in: [src/pdf/signature.ts:45](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L45) Optional chain certificates (DER) to embed alongside the signer cert. #### Inherited from [Section titled “Inherited from”](#inherited-from-3) [`SignerCredentials`](/api/index/interfaces/signercredentials/).[`extraCertificates`](/api/index/interfaces/signercredentials/#extracertificates) *** ### fieldName? [Section titled “fieldName?”](#fieldname) > `readonly` `optional` **fieldName?**: `string` Defined in: [src/pdf/signature.ts:28](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L28) Signature field name (default `"Signature1"`). #### Inherited from [Section titled “Inherited from”](#inherited-from-4) [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`fieldName`](/api/index/interfaces/signatureplaceholder/#fieldname) *** ### location? [Section titled “location?”](#location) > `readonly` `optional` **location?**: `string` Defined in: [src/pdf/signature.ts:21](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L21) #### Inherited from [Section titled “Inherited from”](#inherited-from-5) [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`location`](/api/index/interfaces/signatureplaceholder/#location) *** ### name? [Section titled “name?”](#name) > `readonly` `optional` **name?**: `string` Defined in: [src/pdf/signature.ts:23](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L23) Signer name recorded in the dictionary (`/Name`). #### Inherited from [Section titled “Inherited from”](#inherited-from-6) [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`name`](/api/index/interfaces/signatureplaceholder/#name) *** ### privateKey [Section titled “privateKey”](#privatekey) > `readonly` **privateKey**: `CryptoKey` Defined in: [src/pdf/signature.ts:41](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L41) WebCrypto private key. An RSASSA-PKCS1-v1\_5 key (default) or — when `algorithm` is `'ecdsa'` — an ECDSA key (P-256/P-384/P-521). #### Inherited from [Section titled “Inherited from”](#inherited-from-7) [`SignerCredentials`](/api/index/interfaces/signercredentials/).[`privateKey`](/api/index/interfaces/signercredentials/#privatekey) *** ### reason? [Section titled “reason?”](#reason) > `readonly` `optional` **reason?**: `string` Defined in: [src/pdf/signature.ts:20](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L20) #### Inherited from [Section titled “Inherited from”](#inherited-from-8) [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`reason`](/api/index/interfaces/signatureplaceholder/#reason) *** ### reserveBytes? [Section titled “reserveBytes?”](#reservebytes) > `readonly` `optional` **reserveBytes?**: `number` Defined in: [src/pdf/signature.ts:30](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L30) Bytes reserved for the `/Contents` signature hole (default 8192). #### Inherited from [Section titled “Inherited from”](#inherited-from-9) [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`reserveBytes`](/api/index/interfaces/signatureplaceholder/#reservebytes) *** ### signingTime? [Section titled “signingTime?”](#signingtime) > `readonly` `optional` **signingTime?**: `Date` Defined in: [src/pdf/signature.ts:26](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L26) Claimed signing time (→ `/M` and the CMS `signingTime` attribute). #### Inherited from [Section titled “Inherited from”](#inherited-from-10) [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/).[`signingTime`](/api/index/interfaces/signatureplaceholder/#signingtime) # SignaturePlaceholder Defined in: [src/pdf/signature.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L19) The signature-dictionary metadata stamped at placeholder time by addSignaturePlaceholder. ## Extended by [Section titled “Extended by”](#extended-by) * [`SignatureOptions`](/api/index/interfaces/signatureoptions/) ## Properties [Section titled “Properties”](#properties) ### contactInfo? [Section titled “contactInfo?”](#contactinfo) > `readonly` `optional` **contactInfo?**: `string` Defined in: [src/pdf/signature.ts:24](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L24) *** ### fieldName? [Section titled “fieldName?”](#fieldname) > `readonly` `optional` **fieldName?**: `string` Defined in: [src/pdf/signature.ts:28](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L28) Signature field name (default `"Signature1"`). *** ### location? [Section titled “location?”](#location) > `readonly` `optional` **location?**: `string` Defined in: [src/pdf/signature.ts:21](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L21) *** ### name? [Section titled “name?”](#name) > `readonly` `optional` **name?**: `string` Defined in: [src/pdf/signature.ts:23](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L23) Signer name recorded in the dictionary (`/Name`). *** ### reason? [Section titled “reason?”](#reason) > `readonly` `optional` **reason?**: `string` Defined in: [src/pdf/signature.ts:20](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L20) *** ### reserveBytes? [Section titled “reserveBytes?”](#reservebytes) > `readonly` `optional` **reserveBytes?**: `number` Defined in: [src/pdf/signature.ts:30](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L30) Bytes reserved for the `/Contents` signature hole (default 8192). *** ### signingTime? [Section titled “signingTime?”](#signingtime) > `readonly` `optional` **signingTime?**: `Date` Defined in: [src/pdf/signature.ts:26](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L26) Claimed signing time (→ `/M` and the CMS `signingTime` attribute). # SignerCredentials Defined in: [src/pdf/signature.ts:34](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L34) The signing key material consumed by [signPdf](/api/index/functions/signpdf/). ## Extended by [Section titled “Extended by”](#extended-by) * [`SignatureOptions`](/api/index/interfaces/signatureoptions/) ## Properties [Section titled “Properties”](#properties) ### algorithm? [Section titled “algorithm?”](#algorithm) > `readonly` `optional` **algorithm?**: `"rsa"` | `"ecdsa"` Defined in: [src/pdf/signature.ts:43](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L43) Signature algorithm of the key (default `'rsa'`). *** ### certificate [Section titled “certificate”](#certificate) > `readonly` **certificate**: `Uint8Array` Defined in: [src/pdf/signature.ts:36](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L36) Signer’s X.509 certificate (DER). *** ### extraCertificates? [Section titled “extraCertificates?”](#extracertificates) > `readonly` `optional` **extraCertificates?**: readonly `Uint8Array`<`ArrayBufferLike`>\[] Defined in: [src/pdf/signature.ts:45](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L45) Optional chain certificates (DER) to embed alongside the signer cert. *** ### privateKey [Section titled “privateKey”](#privatekey) > `readonly` **privateKey**: `CryptoKey` Defined in: [src/pdf/signature.ts:41](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L41) WebCrypto private key. An RSASSA-PKCS1-v1\_5 key (default) or — when `algorithm` is `'ecdsa'` — an ECDSA key (P-256/P-384/P-521). *** ### signingTime? [Section titled “signingTime?”](#signingtime) > `readonly` `optional` **signingTime?**: `Date` Defined in: [src/pdf/signature.ts:46](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/pdf/signature.ts#L46) # StyledRenderOptions Defined in: [src/layout/styled-layout.ts:170](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L170) The full option set the layout engine and PDF emitter consume: the resolved font registry, the style/numbering tables, the section model and page geometry, the after-body apparatus (footnotes, endnotes, comments), and every PDF-output toggle (PDF/A, tagged, PDF/UA, encryption, attachments, signatures). Only `registry` and `styles` are required; everything else falls back to a sensible default. ## Properties [Section titled “Properties”](#properties) ### attachments? [Section titled “attachments?”](#attachments) > `readonly` `optional` **attachments?**: readonly `AttachedFile`\[] Defined in: [src/layout/styled-layout.ts:290](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L290) Files to embed as associated files (catalog `/AF` + `/Names` `/EmbeddedFiles`). Only emitted for plain PDF and PDF/A-3 (PDF/A-1/2 forbid arbitrary embedded files); ignored for PDF/A-1/2. The docx/xlsx converters can embed the source document automatically via `embedSource`. *** ### charts? [Section titled “charts?”](#charts) > `readonly` `optional` **charts?**: `ReadonlyMap`<`string`, [`Chart`](/api/core/document-model/interfaces/chart/)> Defined in: [src/layout/styled-layout.ts:231](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L231) Parsed charts keyed by relationship id (`ChartBlock.chartRelId`). Supplied by the converter, which resolves the chart parts from the package. *** ### commentAnnotations? [Section titled “commentAnnotations?”](#commentannotations) > `readonly` `optional` **commentAnnotations?**: `boolean` Defined in: [src/layout/styled-layout.ts:224](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L224) CM2b — also emit each comment as a native PDF `/Text` (sticky-note) annotation at its marker. Opt-in and interactive-only: suppressed under PDF/A and tagged output (where it would need annotation/appearance conformance), since the clickable marker + Comments section already carry the content there. *** ### comments? [Section titled “comments?”](#comments) > `readonly` `optional` **comments?**: `ReadonlyMap`<`string`, [`Comment`](/api/core/document-model/interfaces/comment/)> Defined in: [src/layout/styled-layout.ts:216](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L216) §17.13.4 review comments by id; rendered as superscript markers in text and a list after the body (after endnotes), each with its author/date. *** ### embeddedFonts? [Section titled “embeddedFonts?”](#embeddedfonts) > `readonly` `optional` **embeddedFonts?**: `ReadonlyMap`<`string`, [`FontRegistry`](/api/index/classes/fontregistry/)> Defined in: [src/layout/styled-layout.ts:188](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L188) The document’s OWN embedded fonts (`word/fonts/*.odttf`, de-obfuscated), keyed by normalized font name. A run whose `w:ascii` matches one renders with the real font — glyph-exact, no substitution. Highest priority. *** ### encrypt? [Section titled “encrypt?”](#encrypt) > `readonly` `optional` **encrypt?**: [`PdfEncryptOptions`](/api/index/interfaces/pdfencryptoptions/) Defined in: [src/layout/styled-layout.ts:283](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L283) §7.6 PDF encryption (AES-256, R6). Only honoured on the ASYNC conversion path (WebCrypto); mutually exclusive with `pdfA` (ISO 19005 forbids `/Encrypt`) and with signatures (v1). *** ### endnotes? [Section titled “endnotes?”](#endnotes) > `readonly` `optional` **endnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:211](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L211) *** ### footnotes? [Section titled “footnotes?”](#footnotes) > `readonly` `optional` **footnotes?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:210](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L210) §17.11 notes content by id. Footnotes render in a reserved band at the bottom of the referencing page; endnotes flow after the body. *** ### headersFooters? [Section titled “headersFooters?”](#headersfooters) > `readonly` `optional` **headersFooters?**: `ReadonlyMap`<`string`, readonly [`BodyElement`](/api/core/document-model/type-aliases/bodyelement/)\[]> Defined in: [src/layout/styled-layout.ts:205](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L205) Header/footer body content keyed by relationship id. *** ### hyphenator? [Section titled “hyphenator?”](#hyphenator) > `readonly` `optional` **hyphenator?**: [`Hyphenator`](/api/index/interfaces/hyphenator/) Defined in: [src/layout/styled-layout.ts:243](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L243) Optional Liang hyphenator. When set, each word token is split at allowed hyphenation positions and offered to Knuth-Plass as potential break points (with a small disincentive). Improves justified paragraph rags. *** ### info? [Section titled “info?”](#info) > `readonly` `optional` **info?**: [`DocumentInfo`](/api/index/interfaces/documentinfo/) Defined in: [src/layout/styled-layout.ts:248](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L248) Optional `/Info` dictionary metadata (ISO 32000-1 §14.3.3). Unset fields are omitted; if any field is set a PDF `/Info` entry is emitted. *** ### language? [Section titled “language?”](#language) > `readonly` `optional` **language?**: `string` Defined in: [src/layout/styled-layout.ts:277](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L277) Document natural language (BCP 47, e.g. `"en-US"`, `"ru-RU"`) for the tagged-PDF catalog `/Lang` (§14.9.2). Defaults to `"en-US"`. The docx converter fills this from the document’s default `w:lang`. *** ### layoutProfile? [Section titled “layoutProfile?”](#layoutprofile) > `readonly` `optional` **layoutProfile?**: `LayoutProfile` Defined in: [src/layout/styled-layout.ts:174](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L174) Renderer-compatibility profile for the line-height model (default `'ream'`). *** ### marginBottom? [Section titled “marginBottom?”](#marginbottom) > `readonly` `optional` **marginBottom?**: `number` Defined in: [src/layout/styled-layout.ts:237](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L237) *** ### marginLeft? [Section titled “marginLeft?”](#marginleft) > `readonly` `optional` **marginLeft?**: `number` Defined in: [src/layout/styled-layout.ts:234](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L234) *** ### marginRight? [Section titled “marginRight?”](#marginright) > `readonly` `optional` **marginRight?**: `number` Defined in: [src/layout/styled-layout.ts:235](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L235) *** ### marginTop? [Section titled “marginTop?”](#margintop) > `readonly` `optional` **marginTop?**: `number` Defined in: [src/layout/styled-layout.ts:236](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L236) *** ### numbering? [Section titled “numbering?”](#numbering) > `readonly` `optional` **numbering?**: [`Numbering`](/api/core/document-model/interfaces/numbering/) Defined in: [src/layout/styled-layout.ts:192](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L192) §17.9 numbering definitions; applied to list paragraphs before layout. *** ### pageHeight? [Section titled “pageHeight?”](#pageheight) > `readonly` `optional` **pageHeight?**: `number` Defined in: [src/layout/styled-layout.ts:233](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L233) *** ### pageWidth? [Section titled “pageWidth?”](#pagewidth) > `readonly` `optional` **pageWidth?**: `number` Defined in: [src/layout/styled-layout.ts:232](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L232) *** ### pdfA? [Section titled “pdfA?”](#pdfa) > `readonly` `optional` **pdfA?**: `PdfALevel` Defined in: [src/layout/styled-layout.ts:258](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L258) When set, emit a PDF/A-conformant file: an OutputIntent with an embedded sRGB ICC profile, document XMP `/Metadata` (the pdfaid identifier), `/ID`, and subset-tagged fonts with a `/CIDSet`. The profile picks the rest: part 1 → PDF 1.4 + flattened image alpha (no transparency); part 2/3 → PDF 1.7 + preserved transparency (image `/SMask` + page group); part 3 → may carry embedded associated files (see `attachments`); level a → tagged (logical structure); b → visual; u → b + Unicode mapping. *** ### pdfUA? [Section titled “pdfUA?”](#pdfua) > `readonly` `optional` **pdfUA?**: `boolean` Defined in: [src/layout/styled-layout.ts:271](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L271) PDF/UA-1 (ISO 14289-1): implies tagged; the XMP carries `pdfuaid:part=1` and the document always gets a title (AT announces it). Combines freely with `pdfA` level-a profiles. *** ### registriesByFamily? [Section titled “registriesByFamily?”](#registriesbyfamily) > `readonly` `optional` **registriesByFamily?**: `ReadonlyMap`<[`FamilyKey`](/api/index/type-aliases/familykey/), [`FontRegistry`](/api/index/classes/fontregistry/)> Defined in: [src/layout/styled-layout.ts:182](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L182) Per-run font resolution: when supplied, each text run picks the registry of its declared family (sans→arimo / serif→tinos / mono→cousine via the run’s `w:ascii`) instead of always using `registry`. Absent ⇒ single-family (every run uses `registry`), byte-identical to before. `registry` remains the guaranteed fallback for math/chart/default glyphs and any missing family. *** ### registry [Section titled “registry”](#registry) > `readonly` **registry**: [`FontRegistry`](/api/index/classes/fontregistry/) Defined in: [src/layout/styled-layout.ts:172](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L172) The resolved font set every run draws with (the guaranteed fallback registry). *** ### resources? [Section titled “resources?”](#resources) > `readonly` `optional` **resources?**: [`ResourceStore`](/api/index/classes/resourcestore/) Defined in: [src/layout/styled-layout.ts:226](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L226) Content-addressed binary store; image nodes reference it by [ResourceId](/api/index/type-aliases/resourceid/). *** ### section? [Section titled “section?”](#section) > `readonly` `optional` **section?**: [`SectionProperties`](/api/core/document-model/interfaces/sectionproperties/) Defined in: [src/layout/styled-layout.ts:197](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L197) Single-section legacy entry-point. If `sections` is set it takes precedence and `section` is ignored. *** ### sections? [Section titled “sections?”](#sections) > `readonly` `optional` **sections?**: readonly [`Section`](/api/core/document-model/interfaces/section/)\[] Defined in: [src/layout/styled-layout.ts:203](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L203) ECMA-376 §17.6 — ordered list of sections. Each section’s `endIndex` is the exclusive bound into the body array (section N covers `body[sections[N-1].endIndex..sections[N].endIndex)`). *** ### signaturePlaceholder? [Section titled “signaturePlaceholder?”](#signatureplaceholder) > `readonly` `optional` **signaturePlaceholder?**: [`SignaturePlaceholder`](/api/index/interfaces/signatureplaceholder/) Defined in: [src/layout/styled-layout.ts:297](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L297) Emit an (invisible) signature field + signature dictionary with placeholder `/ByteRange` and `/Contents` (ISO 32000 §12.8). The result is an UNSIGNED PDF; pass it to `signPdf()` to fill the placeholder with a real PKCS#7 signature. *** ### styles [Section titled “styles”](#styles) > `readonly` **styles**: [`StyleSheet`](/api/core/document-model/interfaces/stylesheet/) Defined in: [src/layout/styled-layout.ts:190](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L190) §18.8 / ECMA-376 style table the cascade resolves against. *** ### tagged? [Section titled “tagged?”](#tagged) > `readonly` `optional` **tagged?**: `boolean` Defined in: [src/layout/styled-layout.ts:265](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/styled-layout.ts#L265) Emit a tagged PDF (ISO 32000-1 §14.8): a `/StructTreeRoot` describing reading order, marked content (BDC/EMC + MCID) on body text, and `/Artifact` marking of page decoration. Implied by `pdfA: 'PDF/A-1a'`. Independent of PDF/A otherwise (a plain tagged PDF is useful on its own). # SvgWriteOptions Defined in: [src/svg/svg-writer.ts:26](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/svg/svg-writer.ts#L26) Options for [writeSvg](/api/index/functions/writesvg/). ## Properties [Section titled “Properties”](#properties) ### pageGap? [Section titled “pageGap?”](#pagegap) > `readonly` `optional` **pageGap?**: `number` Defined in: [src/svg/svg-writer.ts:28](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/svg/svg-writer.ts#L28) Gap between stacked pages, in px/pt (default 12). # TextLineItem Defined in: [src/layout/page-doc.ts:189](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L189) A laid-out line of text (tokens carry their fonts/sizes/positions). ## Extends [Section titled “Extends”](#extends) * [`PageItemBase`](/api/index/interfaces/pageitembase/) ## Properties [Section titled “Properties”](#properties) ### artifact? [Section titled “artifact?”](#artifact) > `readonly` `optional` **artifact?**: `"pagination"` Defined in: [src/layout/page-doc.ts:185](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L185) Tagged PDF: explicitly mark this item as a pagination artifact (running header/footer, §14.8.2.2.2). Distinguishes header/footer text from not-yet-tagged body content so it is typed `/Artifact /Pagination`, never a P. #### Inherited from [Section titled “Inherited from”](#inherited-from) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`artifact`](/api/index/interfaces/pageitembase/#artifact) *** ### baselineY [Section titled “baselineY”](#baseliney) > `readonly` **baselineY**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:194](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L194) Distance from the page TOP down to the text baseline. *** ### line [Section titled “line”](#line) > `readonly` **line**: `Line` Defined in: [src/layout/page-doc.ts:191](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L191) *** ### originX [Section titled “originX”](#originx) > `readonly` **originX**: [`Pt`](/api/index/type-aliases/pt/) Defined in: [src/layout/page-doc.ts:192](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L192) *** ### structId? [Section titled “structId?”](#structid) > `readonly` `optional` **structId?**: `number` Defined in: [src/layout/page-doc.ts:179](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L179) Tagged PDF (§14.8): the logical structure node this item’s content belongs to. Set only on body content in tagged mode; undefined text in the line pass is treated as an artifact. Ignored when not tagging. #### Inherited from [Section titled “Inherited from”](#inherited-from-1) [`PageItemBase`](/api/index/interfaces/pageitembase/).[`structId`](/api/index/interfaces/pageitembase/#structid) *** ### type [Section titled “type”](#type) > `readonly` **type**: `"line"` Defined in: [src/layout/page-doc.ts:190](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L190) # WriteOptions Defined in: [src/core/ir/adapters.ts:44](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L44) Writer-call options. Open-ended; per-writer knobs live in the writers. ## Indexable [Section titled “Indexable”](#indexable) > \[`key`: `string`]: `unknown` # WriteResult Defined in: [src/core/ir/adapters.ts:49](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L49) The result of [DocumentWriter.write](/api/index/interfaces/documentwriter/#write): the encoded bytes plus any losses. ## Properties [Section titled “Properties”](#properties) ### bytes [Section titled “bytes”](#bytes) > `readonly` **bytes**: `Uint8Array` Defined in: [src/core/ir/adapters.ts:51](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L51) The encoded output bytes. *** ### losses [Section titled “losses”](#losses) > `readonly` **losses**: [`LossReport`](/api/index/type-aliases/lossreport/) Defined in: [src/core/ir/adapters.ts:53](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/adapters.ts#L53) Losses recorded while writing. # FamilyKey > **FamilyKey** = `"arimo"` | `"tinos"` | `"cousine"` | `"carlito"` | `"caladea"` Defined in: [src/core/fonts/remote-fonts.ts:37](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L37) A curated open substitute family (the Croscore + Carlito/Caladea set, like LibreOffice). # Feature > **Feature** = `string` Defined in: [src/core/ir/features.ts:16](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/features.ts#L16) A capability/loss feature name. A plain string, hierarchical via dot-segments (`'tables.nested'` ⊂ `'tables'`); the vocabulary is OPEN so third-party adapters can introduce their own. [FEATURES](/api/index/variables/features/) canonicalizes the names the core uses. # FetchLike > **FetchLike** = (`url`) => `Promise`<{ `arrayBuffer`: () => `Promise`<`ArrayBuffer`>; `ok`: `boolean`; }> Defined in: [src/core/fonts/remote-fonts.ts:121](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/remote-fonts.ts#L121) A minimal `fetch`-like function (injectable for tests / offline use). ## Parameters [Section titled “Parameters”](#parameters) ### url [Section titled “url”](#url) `string` ## Returns [Section titled “Returns”](#returns) `Promise`<{ `arrayBuffer`: () => `Promise`<`ArrayBuffer`>; `ok`: `boolean`; }> # FontAnswer > **FontAnswer** = { `bytes`: `Uint8Array`; `faceName`: `string`; `kind`: `"bytes"`; `providerId`: `string`; } | { `kind`: `"none"`; } Defined in: [src/core/fonts/provider.ts:29](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L29) A provider’s answer: resolved bytes, or `none` to fall through to the next provider. ## Union Members [Section titled “Union Members”](#union-members) ### Type Literal [Section titled “Type Literal”](#type-literal) { `bytes`: `Uint8Array`; `faceName`: `string`; `kind`: `"bytes"`; `providerId`: `string`; } #### bytes [Section titled “bytes”](#bytes) > `readonly` **bytes**: `Uint8Array` #### faceName [Section titled “faceName”](#facename) > `readonly` **faceName**: `string` Face the bytes actually are (for substitution reporting). #### kind [Section titled “kind”](#kind) > `readonly` **kind**: `"bytes"` #### providerId [Section titled “providerId”](#providerid) > `readonly` **providerId**: `string` Which provider answered (chain bookkeeping). *** ### Type Literal [Section titled “Type Literal”](#type-literal-1) { `kind`: `"none"`; } # FontVariant > **FontVariant** = `"regular"` | `"bold"` | `"italic"` | `"boldItalic"` Defined in: [src/core/font/font-registry.ts:9](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/font/font-registry.ts#L9) A font style slot: regular, bold, italic or bold-italic. # KnownFeature > **KnownFeature** = *typeof* [`FEATURES`](/api/index/variables/features/)\[keyof *typeof* [`FEATURES`](/api/index/variables/features/)] Defined in: [src/core/ir/features.ts:45](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/features.ts#L45) Union of the canonical [FEATURES](/api/index/variables/features/) values. # LossReport > **LossReport** = `ReadonlyArray`<[`Loss`](/api/index/interfaces/loss/)> Defined in: [src/core/ir/loss.ts:31](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L31) An ordered, read-only list of [Loss](/api/index/interfaces/loss/) entries, returned alongside the output. # LossSeverity > **LossSeverity** = `"dropped"` | `"degraded"` | `"substituted"` Defined in: [src/core/ir/loss.ts:16](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/loss.ts#L16) * `dropped` — content is absent from the output (e.g. math → markdown). * `degraded` — content survives with reduced fidelity (e.g. gradient → flat fill). * `substituted` — content was replaced by an equivalent (e.g. font substitution). # PageItem > **PageItem** = [`TextLineItem`](/api/index/interfaces/textlineitem/) | [`BorderItem`](/api/index/interfaces/borderitem/) | [`FillItem`](/api/index/interfaces/fillitem/) | [`ImageItem`](/api/index/interfaces/imageitem/) | [`ShapeItem`](/api/index/interfaces/shapeitem/) Defined in: [src/layout/page-doc.ts:242](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/layout/page-doc.ts#L242) A positioned item on a laid-out page: a text line, border, fill, image, or vector shape. # Pt > **Pt** = `number` & `object` Defined in: [src/core/ir/units.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/units.ts#L19) The IR’s one length unit: PostScript points (1/72 inch), as a branded number. Readers convert their format-native units (twips, half-points, EMU, …) to `Pt` at the boundary, and writers convert out the same way. The brand is shallow — a `Pt` is assignable to `number` so layout arithmetic reads it freely; only *constructing* one requires [pt](/api/index/functions/pt/) or a `*ToPt` converter. ## Type Declaration [Section titled “Type Declaration”](#type-declaration) ### \_\_brand [Section titled “\_\_brand”](#__brand) > `readonly` **\_\_brand**: `"pt"` # ReamTarget > **ReamTarget** = `"pdf"` | `"svg"` | `"html"` | `"docx"` | `"xlsx"` Defined in: [src/core/converter/ream.ts:43](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/converter/ream.ts#L43) The output formats [Ream.convert](/api/index/classes/ream/#convert) can produce. # ResourceId > **ResourceId** = `string` & `object` Defined in: [src/core/ir/resources.ts:16](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/resources.ts#L16) A content-addressed id for a binary resource held in a [ResourceStore](/api/index/classes/resourcestore/). ## Type Declaration [Section titled “Type Declaration”](#type-declaration) ### \_\_brand [Section titled “\_\_brand”](#__brand) > `readonly` **\_\_brand**: `"resource-id"` # SupportedLanguage > **SupportedLanguage** = `"en-us"` | `"ru"` Defined in: [src/core/hyphenation/index.ts:12](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/hyphenation/index.ts#L12) A language for which bundled hyphenation patterns exist. # docxReader > `const` **docxReader**: [`DocumentReader`](/api/index/interfaces/documentreader/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)> Defined in: [src/word/docx-reader.ts:212](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-reader.ts#L212) The [DocumentReader](/api/index/interfaces/documentreader/) registration for `.docx`: its id, the FlowDoc feature set it supports, the sniffer, and the [readDocx](/api/index/functions/readdocx/) entry point. # docxWriter > `const` **docxWriter**: [`DocumentWriter`](/api/index/interfaces/documentwriter/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)> Defined in: [src/word/docx-writer.ts:657](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/word/docx-writer.ts#L657) The [DocumentWriter](/api/index/interfaces/documentwriter/) registration for `.docx`: its id, the medium it consumes (`flow`), the feature set it supports, and the [writeDocx](/api/index/functions/writedocx/) entry point. # FEATURES > `const` **FEATURES**: `object` Defined in: [src/core/ir/features.ts:19](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/ir/features.ts#L19) The feature names the core declares, so the docs’ capability matrix is code-generated. ## Type Declaration [Section titled “Type Declaration”](#type-declaration) ### cellFormatting [Section titled “cellFormatting”](#cellformatting) > `readonly` **cellFormatting**: `"cellFormatting"` = `'cellFormatting'` ### charts [Section titled “charts”](#charts) > `readonly` **charts**: `"charts"` = `'charts'` ### fontsEmbedding [Section titled “fontsEmbedding”](#fontsembedding) > `readonly` **fontsEmbedding**: `"fonts.embedding"` = `'fonts.embedding'` ### fontsSubstitution [Section titled “fontsSubstitution”](#fontssubstitution) > `readonly` **fontsSubstitution**: `"fonts.substitution"` = `'fonts.substitution'` ### headersFooters [Section titled “headersFooters”](#headersfooters) > `readonly` **headersFooters**: `"headersFooters"` = `'headersFooters'` ### hyperlinks [Section titled “hyperlinks”](#hyperlinks) > `readonly` **hyperlinks**: `"hyperlinks"` = `'hyperlinks'` ### hyphenation [Section titled “hyphenation”](#hyphenation) > `readonly` **hyphenation**: `"hyphenation"` = `'hyphenation'` ### images [Section titled “images”](#images) > `readonly` **images**: `"images"` = `'images'` ### imagesJp2 [Section titled “imagesJp2”](#imagesjp2) > `readonly` **imagesJp2**: `"images.jp2"` = `'images.jp2'` ### lists [Section titled “lists”](#lists) > `readonly` **lists**: `"lists"` = `'lists'` ### math [Section titled “math”](#math) > `readonly` **math**: `"math"` = `'math'` ### pdfA [Section titled “pdfA”](#pdfa) > `readonly` **pdfA**: `"pdf.archival"` = `'pdf.archival'` ### pdfSignatures [Section titled “pdfSignatures”](#pdfsignatures) > `readonly` **pdfSignatures**: `"pdf.signatures"` = `'pdf.signatures'` ### pdfTagged [Section titled “pdfTagged”](#pdftagged) > `readonly` **pdfTagged**: `"pdf.tagged"` = `'pdf.tagged'` ### rtl [Section titled “rtl”](#rtl) > `readonly` **rtl**: `"rtl"` = `'rtl'` ### sections [Section titled “sections”](#sections) > `readonly` **sections**: `"sections"` = `'sections'` ### shapes [Section titled “shapes”](#shapes) > `readonly` **shapes**: `"shapes"` = `'shapes'` ### smartArt [Section titled “smartArt”](#smartart) > `readonly` **smartArt**: `"shapes.smartArt"` = `'shapes.smartArt'` ### tables [Section titled “tables”](#tables) > `readonly` **tables**: `"tables"` = `'tables'` ### tablesNested [Section titled “tablesNested”](#tablesnested) > `readonly` **tablesNested**: `"tables.nested"` = `'tables.nested'` ### text [Section titled “text”](#text) > `readonly` **text**: `"text"` = `'text'` ### trackedChanges [Section titled “trackedChanges”](#trackedchanges) > `readonly` **trackedChanges**: `"trackedChanges"` = `'trackedChanges'` # htmlWriter > `const` **htmlWriter**: [`DocumentWriter`](/api/index/interfaces/documentwriter/)<[`FlowDoc`](/api/index/interfaces/flowdoc/)> Defined in: [src/html/html-writer.ts:137](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/html/html-writer.ts#L137) The flow-medium [DocumentWriter](/api/index/interfaces/documentwriter/) adapter (id `'html'`), wrapping [writeHtml](/api/index/functions/writehtml/), with the set of [FEATURES](/api/index/variables/features/) it renders. # NO_FONT > `const` **NO\_FONT**: [`FontAnswer`](/api/index/type-aliases/fontanswer/) Defined in: [src/core/fonts/provider.ts:41](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/core/fonts/provider.ts#L41) The shared `none` answer — a provider that cannot satisfy a request. # svgWriter > `const` **svgWriter**: [`DocumentWriter`](/api/index/interfaces/documentwriter/)<[`LaidOutDocument`](/api/index/interfaces/laidoutdocument/)> Defined in: [src/svg/svg-writer.ts:75](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/svg/svg-writer.ts#L75) The page-medium [DocumentWriter](/api/index/interfaces/documentwriter/) adapter (id `'svg'`), wrapping [writeSvg](/api/index/functions/writesvg/), with the set of [FEATURES](/api/index/variables/features/) it renders. # xlsxReader > `const` **xlsxReader**: [`DocumentReader`](/api/index/interfaces/documentreader/)<`SheetDoc`> Defined in: [src/excel/xlsx-reader.ts:577](https://github.com/alex-krassavin/reamkit/blob/bd2433fe4df58a0241a2509b16bb71dc1d953428/src/excel/xlsx-reader.ts#L577) The OOXML `.xlsx` [DocumentReader](/api/index/interfaces/documentreader/): sniffs the OPC ZIP for `xl/workbook.xml` and reads it into a SheetDoc. The reader’s native tree is the SheetDoc; the facade/Ream project it to a [FlowDoc](/api/index/interfaces/flowdoc/) for rendering (E-SHEET SB1). # Concepts > How Ream converts a document — the from-scratch, spec-driven pipeline. Ream is written **from the specifications**, not as a wrapper. There is no LibreOffice, headless Office, ZetaJS/WASM, or commercial SDK underneath — the conversion is its own code. Existing implementations (the LibreOffice source, Apache POI) are read only as a reference for the edge cases, never used as a dependency. ## The pipeline [Section titled “The pipeline”](#the-pipeline) A conversion walks the same stages a word processor would, each mapped to a section of the standard: 1. **OPC unpacking** (ECMA-376 Part 2) — the `.docx`/`.xlsx` is a ZIP of XML parts. `fflate` unzips; `fast-xml-parser` parses. (ZIP and XML are the only “incidental” pieces we don’t write ourselves — they are separate standards, not the task.) 2. **OOXML parsing** (Part 1) — WordprocessingML (§17), SpreadsheetML (§18), DrawingML (§20), OfficeMath (§22) become a typed, in-memory **document model**. 3. **Style cascade** (§17.7) — `docDefaults` → named styles → direct formatting are resolved into the effective properties of every run, paragraph and cell. 4. **Layout** — the box model is laid out into lines and pages: **Knuth–Plass** paragraph breaking, **Liang** hyphenation, table auto-layout, the spreadsheet print model (gridlines, print area, fit-to-page, repeated titles, page breaks). 5. **Text shaping** — Unicode text becomes positioned glyphs: OpenType ligatures and kerning (GSUB/GPOS), BiDi reordering (UAX #9), Arabic cursive joining. 6. **PDF writing** (ISO 32000) — content streams, the cross-reference table, Type0 + CIDFontType2 font embedding **with subsetting**, image XObjects. Optionally tagged PDF, a PDF/A profile, or a digital signature. ## The interlayer (FlowDoc) [Section titled “The interlayer (FlowDoc)”](#the-interlayer-flowdoc) The stages above are decoupled by an intermediate representation: readers parse a format into a **FlowDoc** (a semantic, format-neutral document tree — no pages or coordinates yet), the layout turns it into positioned pages (the frozen page model: `PageItem`s in a top-left, point-unit frame), and writers emit a target format from there: ```plaintext 1 bytes → reader → FlowDoc → layout → pages → writer → bytes ``` `Ream.parse` runs a reader once and hands you the FlowDoc (`doc.flow`); every `doc.convert` renders from it without re-reading the source. New formats plug in as `DocumentReader`/`DocumentWriter` implementations (the `@experimental` interfaces) instead of new end-to-end converters — the SVG preview writer (consuming positioned pages) and the HTML writer (consuming the FlowDoc directly, no layout or fonts involved) are exactly such adapters. The same seam runs in reverse for **PDF input**. A PDF reader is just another `DocumentReader`, but inbound it *reconstructs* a FlowDoc rather than parsing a clean tree: a tagged PDF is rebuilt from its logical structure tree, an untagged one heuristically from glyph positions (lines by baseline, paragraphs by spacing, a two-column page split by its central gutter). The result is an ordinary FlowDoc, so `Ream.parse(pdfBytes)` converts onward to HTML, docx or a re-laid PDF like any other source. ## Bytes in, bytes out [Section titled “Bytes in, bytes out”](#bytes-in-bytes-out) The public API is deliberately small and I/O-free: `Uint8Array` in, `Uint8Array` out. Ream never touches the filesystem or the network on the conversion path (zero `node:*`, `Buffer`, `process` or `__dirname` imports), which is what lets the identical code run in a browser tab, a Node server, a Lambda, or an edge worker. How the bytes reach you — a `File`, a `fetch`, `fs` — is your call. ## You supply the fonts [Section titled “You supply the fonts”](#you-supply-the-fonts) PDF embeds the fonts it draws with, so a converter needs font bytes. Ream’s model is **caller-supplies-fonts**: the synchronous API takes the TTF bytes you pass; the async API, as a convenience, fetches an open metric-compatible substitute (Arimo, Tinos, Cousine, plus Carlito/Caladea for Calibri/Cambria — the same families LibreOffice substitutes) based on the document’s referenced fonts. There are no bundled fonts on the main path — the library renders faithfully with whatever font you give it. ## Renderer parity [Section titled “Renderer parity”](#renderer-parity) Ream is a *correct* typesetter — it lays out faithfully for the font it’s given, not a clone of any one program. When you need the page to track a specific renderer instead, `convert('pdf', { layoutProfile })` switches the line-height model, line breaking and default kerning to match it: `'word'` for Microsoft Word, `'libreoffice'` for LibreOffice, `'ream'` (the default) for Ream’s own typesetter. Combined with the metric-compatible substitutes above, visual parity no longer needs the other tool’s private font metrics — only a font engineered to reproduce them and its layout rules. ## Document model [Section titled “Document model”](#document-model) Beyond the converters, the typed document model is exported from the `reamkit/document-model` subpath — paragraphs, runs, tables, sections, numbering, shapes, math and more. `renderStyledPdf` drives the layout engine directly if you want to build or transform a document programmatically rather than parse one. # Examples > Working recipes — PDF/A, digital signatures, font providers, SVG and HTML output, strict mode, the interlayer. Every snippet below is runnable as-is; they all start from document bytes (`Uint8Array`) however you obtained them — a `File`, a `fetch`, `fs`. ## One parse, many targets [Section titled “One parse, many targets”](#one-parse-many-targets) `Ream.parse` reads the document once into the interlayer; every `convert` renders from it without re-parsing: ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(bytes); 4 5 const pdf = await doc.convert('pdf', { fonts }); 6 const svg = await doc.convert('svg', { fonts }); // page-stack preview, no PDF involved 7 const html = await doc.convert('html'); // flowed HTML — no fonts, zero I/O 8 const docx = await doc.convert('docx'); // WordprocessingML back out — no fonts, no layout 9 const xlsx = await doc.convert('xlsx'); // SpreadsheetML back out — from an .xlsx source ``` ## docx → docx: normalize, sanitize, edit [Section titled “docx → docx: normalize, sanitize, edit”](#docx--docx-normalize-sanitize-edit) `convert('docx')` writes the parsed document back to a valid `.docx`. The round-trip is **semantic, not byte-exact** — the writer emits the resolved formatting as direct properties rather than named styles — so use it to normalize, sanitize or programmatically edit a document in the browser, not to preserve the original markup verbatim. Images, tables, lists, links, bookmarks, shapes, headers/footers, multi-section geometry, footnotes/endnotes, charts and OfficeMath all round-trip; floating (anchored) placement collapses to inline. ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(bytes); // a .docx (xlsx has no docx writer) 4 const out = await doc.convert('docx'); 5 // `out` is a fresh, valid .docx — hand it to a download, an upload, or re-parse it. ``` ## xlsx → xlsx: re-emit a workbook [Section titled “xlsx → xlsx: re-emit a workbook”](#xlsx--xlsx-re-emit-a-workbook) `convert('xlsx')` writes a spreadsheet’s grid back to a valid `.xlsx`. Unlike the docx writer it consumes the native grid tree, so the round-trip is **lossless on the grid surface** — cells, styles, merges, the print model, conditional formatting, sparklines, tables and embedded charts all survive a read → write → read loop byte-stably. It requires a spreadsheet source; a `.docx` has no grid. ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(xlsxBytes); // a .xlsx 4 const out = await doc.convert('xlsx'); 5 // `out` is a fresh, valid .xlsx — normalize, sanitize, or re-parse it. ``` ## pdf → html / docx: read a PDF back [Section titled “pdf → html / docx: read a PDF back”](#pdf--html--docx-read-a-pdf-back) `Ream.parse` also accepts a **PDF** — including a modern compressed one (cross-reference streams, object streams) or an encrypted one. A tagged PDF (the ones Ream writes) is rebuilt from its structure tree — headings, paragraphs, tables, lists in reading order; an untagged PDF is reconstructed heuristically from glyph positions. **Raster images, hyperlinks and vector shapes come back too** — images lifted out and sized from their placement, link annotations re-attached to the text, filled paths, stroked lines and shading-pattern gradients turned into shapes. The result is an ordinary `FlowDoc`, so it converts onward like any other source. Clipping paths and clip-bounded (`sh`) shadings are not read (reported as a loss). ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(pdfBytes); // doc.format === 'pdf' 4 const html = await doc.convert('html'); // the PDF's text as flowed HTML 5 const docx = await doc.convert('docx'); // …or an editable Word document 6 7 const { bytes, losses } = await doc.convertWithReport('html'); 8 // losses note the untagged-heuristic degradation and any unread vector art. ``` ### Encrypted PDFs [Section titled “Encrypted PDFs”](#encrypted-pdfs) A PDF locked with a **user password** is opened by passing it to `Ream.parse`. The empty-string default unlocks the common permissions-only encryption (where the owner set restrictions but no open password), so most encrypted PDFs need no password at all: ```ts 1 const doc = Ream.parse(pdfBytes, { password: 'letmein' }); ``` A **wrong or missing** password is not thrown — `Ream.parse` still succeeds, but the encrypted content can’t be decrypted, so it’s recorded as a read-time **loss** and the text simply doesn’t come back. Inspect `doc.losses`: ```ts 1 const doc = Ream.parse(lockedPdf); // no/incorrect password 2 doc.losses; 3 // [ 4 // { 5 // severity: 'dropped', 6 // feature: 'text', 7 // detail: 'encrypted PDF — the user password was missing or incorrect, or the handler is unsupported', 8 // }, 9 // ] ``` To make that loss fatal instead, convert in **strict** mode: the first loss throws a `ConversionLossError`, with the offending `Loss` on its `.loss` property. ```ts 1 import { Ream, ConversionLossError } from 'reamkit'; 2 3 try { 4 await Ream.parse(lockedPdf).convert('html', { strict: true }); 5 } catch (err) { 6 if (err instanceof ConversionLossError) { 7 err.loss.feature; // 'text' 8 err.loss.detail; // 'encrypted PDF — the user password was missing or incorrect, …' 9 } 10 } ``` ## pptx → pdf: render a slide deck [Section titled “pptx → pdf: render a slide deck”](#pptx--pdf-render-a-slide-deck) `Ream.parse` also accepts a **PowerPoint** `.pptx`. Each slide becomes a page at the deck size, its shapes read as positioned content — text boxes, placeholders, pictures, shapes, tables, charts, theme colours, backgrounds, groups and hyperlinks. The result is an ordinary `FlowDoc`, so it converts onward like any other source: ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(pptxBytes); // doc.format === 'pptx' 4 const pdf = await doc.convert('pdf', { fonts }); // a page per slide 5 const html = await doc.convert('html'); // …or the slides as flowed HTML ``` ## Word review comments [Section titled “Word review comments”](#word-review-comments) Review comments (`w:commentReference`) render as a bracketed superscript marker in the text and a “Comments” section after the body — author, date and content, with reply threads nested and resolved threads flagged, the commented range highlighted, and author identities resolved from `people.xml`. In PDF the marker is a clickable jump to the entry; pass `commentAnnotations: true` to *also* attach each comment as a native sticky-note annotation (interactive output only — suppressed under PDF/A and tagged): ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(docxBytes); 4 5 const pdf = await doc.convert('pdf', { fonts }); // markers + Comments section + highlights 6 const sticky = await doc.convert('pdf', { fonts, commentAnnotations: true }); // …plus /Text pop-ups 7 const html = await doc.convert('html'); // replies nested, resolved threads flagged 8 9 doc.flow.comments?.get('0'); // { content, author?, date?, authorId?, parentId?, done? } ``` Comments — threads and resolved flags included — also write back through `convert('docx')`. ## Excel pivot tables [Section titled “Excel pivot tables”](#excel-pivot-tables) A pivot table’s cached output renders as an ordinary grid; on top of that Ream applies the table’s named pivot style (`pivotTableStyleInfo`) — banded rows and a styled header — and emphasises the grand-total / subtotal rows and columns. Nothing is recomputed from the cache: ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(xlsxBytes); 4 const pdf = await doc.convert('pdf', { fonts }); 5 const html = await doc.convert('html'); ``` ## Excel data validation [Section titled “Excel data validation”](#excel-data-validation) A `list` data validation (``) paints an in-cell dropdown affordance — a small button with a ▾ — on every cell of its range, in both PDF and HTML. The validation, its formulas and the input/error prompts also round-trip through `convert('xlsx')`: ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(xlsxBytes); 4 const pdf = await doc.convert('pdf', { fonts }); // list cells show a ▾ dropdown button 5 const html = await doc.convert('html'); 6 const xlsx = await doc.convert('xlsx'); // the survive the round-trip ``` ## Excel slicers [Section titled “Excel slicers”](#excel-slicers) A slicer (`xl/slicers` + `xl/slicerCaches`) renders as a captioned button box after the grid — the way a chart frame does. A native-table slicer fills its buttons from the referenced table column’s distinct values and highlights the ones the column’s autofilter keeps; an OLAP/pivot slicer whose items live in a pivot cache degrades to a caption-only box. ```ts 1 import { Ream } from 'reamkit'; 2 3 const doc = Ream.parse(xlsxBytes); 4 const pdf = await doc.convert('pdf', { fonts }); // a button box per slicer, after the grid 5 const html = await doc.convert('html'); ``` ## SmartArt diagrams [Section titled “SmartArt diagrams”](#smartart-diagrams) SmartArt (DOCX and PPTX) renders from the diagram’s pre-rendered DrawingML drawing (`diagrams/drawing#.xml`) as positioned shapes, with scheme colours resolved through the document or deck theme. A diagram that ships no drawing fallback degrades to a graceful loss rather than an empty space — surface it with `convertWithReport`: ```ts 1 import { Ream } from 'reamkit'; 2 3 const { bytes, losses } = await Ream.parse(docxBytes).convertWithReport('pdf', { fonts }); 4 // a SmartArt with no drawing override → { severity: 'dropped', feature: 'shapes.smartArt', … } ``` ## Browser: file input → PDF preview [Section titled “Browser: file input → PDF preview”](#browser-file-input--pdf-preview) ```ts 1 import { Ream } from 'reamkit'; 2 3 input.addEventListener('change', async () => { 4 const bytes = new Uint8Array(await input.files![0].arrayBuffer()); 5 const pdf = await Ream.parse(bytes).convert('pdf'); 6 window.open(URL.createObjectURL(new Blob([pdf], { type: 'application/pdf' }))); 7 }); ``` ## Node: file in, file out [Section titled “Node: file in, file out”](#node-file-in-file-out) ```ts 1 import { readFileSync, writeFileSync } from 'node:fs'; 2 import { Ream } from 'reamkit'; 3 4 const doc = Ream.parse(new Uint8Array(readFileSync('report.docx'))); 5 writeFileSync('report.pdf', await doc.convert('pdf')); ``` ## Archival PDF/A with the source embedded [Section titled “Archival PDF/A with the source embedded”](#archival-pdfa-with-the-source-embedded) The whole PDF/A family is supported (1a/1b, 2a/2b/2u, 3a/3b/3u). PDF/A-3 can carry the source document inside the PDF as an associated file: ```ts 1 const { bytes: pdfa, losses } = await doc.convertWithReport('pdf', { 2 fonts, 3 pdfA: 'PDF/A-3b', 4 embedSource: true, // .docx/.xlsx rides along as /AF with /AFRelationship /Source 5 }); ``` `'PDF/A-1a'` / `'PDF/A-2a'` / `'PDF/A-3a'` additionally emit the tagged logical structure (headings, tables, lists, figure alt text). ## Accessible PDF/UA-1 [Section titled “Accessible PDF/UA-1”](#accessible-pdfua-1) `pdfUA: true` produces ISO 14289-1-conformant output — tagged structure, alternate descriptions on links, an always-announced document title. It combines with PDF/A in a single file (both veraPDF-validated): ```ts 1 const accessible = await doc.convert('pdf', { fonts, pdfUA: true }); 2 const archival = await doc.convert('pdf', { fonts, pdfA: 'PDF/A-2a', pdfUA: true }); ``` ## Digital signature [Section titled “Digital signature”](#digital-signature) PKCS#7 detached (ISO 32000 §12.8) via WebCrypto — RSA or ECDSA: ```ts 1 const signed = await doc.convert('pdf', { 2 fonts, 3 signature: { 4 certificate: certificateDer, // Uint8Array, DER 5 privateKey: cryptoKey, // WebCrypto CryptoKey 6 // optional: signingTime, reason, location, pades: true, timestampUrl 7 }, 8 }); ``` ## Font resolution chain [Section titled “Font resolution chain”](#font-resolution-chain) Chain providers; the first byte answer wins. A remote or local winner is recorded as a `substituted` loss: ```ts 1 import { Ream, callerFontProvider, localFontProvider, remoteFontProvider } from 'reamkit'; 2 3 const { bytes, losses } = await doc.convertWithReport('pdf', { 4 fontProviders: [ 5 callerFontProvider(myFonts), // your bytes first 6 localFontProvider(), // system fonts (Chromium Local Font Access; 7 // embedding-restricted fonts are never used) 8 remoteFontProvider(), // open substitute set, last resort 9 ], 10 }); 11 // losses[0] → { severity: 'substituted', feature: 'fonts.substitution', … } ``` Fonts embedded in the document itself (`w:embed`, including obfuscated `.odttf`) always win — glyph-exact, no substitution. ## Renderer parity [Section titled “Renderer parity”](#renderer-parity) Ream is a correct typesetter: it lays out faithfully for the font you give it. For closer *visual parity* with a specific renderer, pass a `layoutProfile` — it switches the line-height model, line breaking and default kerning to match that tool. Paired with the metric-compatible substitutes above (so the same glyph advances are in play), the page geometry tracks the target closely: ```ts 1 const pdf = await doc.convert('pdf', { fonts, layoutProfile: 'libreoffice' }); 2 // 'word' targets Microsoft Word; 'ream' (the default) is Ream's own typesetter. ``` `'libreoffice'` derives line height from the font’s hhea metrics and breaks lines greedily (first-fit); `'word'` uses the OS/2 win metrics and turns kerning off (Word’s default). The profile applies to flowing text (DOCX/PPTX); spreadsheet geometry follows Excel’s row model regardless. ## Strict mode (compliance flows) [Section titled “Strict mode (compliance flows)”](#strict-mode-compliance-flows) Make any loss fatal instead of reported: ```ts 1 import { ConversionLossError } from 'reamkit'; 2 3 try { 4 await doc.convert('pdf', { fonts, strict: true }); 5 } catch (e) { 6 if (e instanceof ConversionLossError) { 7 // e.loss — what exactly would have been dropped/degraded/substituted 8 } 9 } ``` ## Inspect the interlayer [Section titled “Inspect the interlayer”](#inspect-the-interlayer) `parse` produces a format-neutral tree before any rendering: ```ts 1 const doc = Ream.parse(bytes); 2 3 doc.format; // 'docx' | 'xlsx' 4 doc.losses; // read-time losses 5 for (const el of doc.flow.body) { 6 // el.kind: 'paragraph' | 'table' | 'image' | 'chart' | 'shape' 7 } ``` ## PDF metadata [Section titled “PDF metadata”](#pdf-metadata) `/Info` is read automatically from the document’s `docProps/core.xml`; caller values override it: ```ts 1 const pdf = await doc.convert('pdf', { 2 fonts, 3 info: { title: 'Q4 Report', author: 'Finance' }, 4 }); ``` ## Hyphenation [Section titled “Hyphenation”](#hyphenation) ```ts 1 import { getHyphenator } from 'reamkit'; 2 3 const hyphenator = await getHyphenator('en-us'); // or 'ru' 4 const pdf = await doc.convert('pdf', { fonts, hyphenator }); ``` # Getting started > Install Ream and convert your first document to PDF. Ream reads Word, Excel, PowerPoint and PDF — the modern `.docx` / `.xlsx` / `.pptx` / `.pdf` and the legacy binary `.doc` / `.xls` / `.ppt` — and converts any of them to PDF, SVG, HTML, DOCX or XLSX, implemented from the ECMA-376 and ISO 32000 specifications. It works on `Uint8Array` in and `Uint8Array` out, so the same code runs in the browser, Node.js, serverless and edge runtimes. ## Install [Section titled “Install”](#install) The package is published as `reamkit`: ```sh 1 npm install reamkit ``` Runtime dependencies are minimal: `fflate` (ZIP/Deflate) and `fast-xml-parser`. ## Convert a document [Section titled “Convert a document”](#convert-a-document) Parse once into the format-neutral interlayer, then convert to any target. The format (docx/xlsx/pptx/pdf) is sniffed from the bytes. No fonts to wire up — an open metric-compatible substitute (Arimo for sans, Tinos for serif, Cousine for monospace, plus Carlito/Caladea for Calibri/Cambria — the same families LibreOffice substitutes) is fetched automatically based on the document’s referenced fonts: ```ts 1 import { Ream } from 'reamkit'; 2 3 // e.g. from an