Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 44 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,45 @@ follow semantic versioning; release dates are ISO 8601.

### Public API

- **A DOCX export writes a row's fill, outline and side borders, as a panel holding its
columns.** A row paints its box as a container does — `RowBuilder.fillColor`, `stroke`,
`borders` — and the export wrote its columns as a table with no shading or borders, naming the
paint as lost (`row paint`).
- **A row that paints is written as a panel**, as a painted container is: a table of one cell
carrying the fill as its shading and the outline and side borders as its borders, its
margins the row's padding, as a panel's are. The columns are a table nested in the cell,
laid out as the row's own less the padding the cell's margins hold; the panel holds the
row's height. The panel is kept whole across a page break, as the row is, and a row the
layout moves to a new page keeps the space above it there.
- **A corner radius squares**, and is named (`corner radius`), as a panel's is. A translucent
fill or border is flattened against what the page paints under it, and named.
- **What stands on the row is set on its fill.** A chip, a rule or a translucent panel in one
of its columns is flattened against the panel's shading as written, where it was flattened
against the page under the row.
- **Borders above and below are named.** Word draws them outside the panel's row, where the
page strokes them on the box's edge: where no space round the row takes them, what follows
stands up to their width lower (`RowNode`, `APPROXIMATED`). Measured, five rows with a 1pt
bottom border one under the other set what follows 5.4pt low in Word and LibreOffice: their
borders' 5pt, and a tenth of a point for each hairline paragraph Word needs between two
tables, as five containers with that border do. A top border wider than the row's padding
stands its columns that much lower too, where the space above does not take it, and the
note says so.
- **Still named as `row paint`**, its columns written alone:
- composed in a table cell, whose table draws its box as a shape where it frames no text;
- in a page zone's line;
- in a band of overlapping layers, or where a stack's column measures the space above or
below it to the text inside it, which the panel's margins would hold again;
- with a padding below zero, or a first or last column whose margin hangs into it;
- with a margin below zero above or below it, which its columns' table nets against its
padding and a panel does not, or at a side in a cell, where Word starts a table no further
left than the cell's text. In the body a row bleeding past the margin is its panel.

Measured in Word 16 and LibreOffice on a page of painted rows, a filled row's shading covers
the box the page fills, to a tenth of a point, and its text stands where the page sets it. No
row in the DOCX fidelity corpus paints its box, and the 62 documents are byte-identical. In
`DocxNodeFieldLedgerTest` a row's `fillColor`, `stroke` and `borders` stay `REPORTED`, for
the cases above.

- **A DOCX export writes an auto-sized paragraph's text at the size the page fits it to.** The
page fits a paragraph with `autoSize(...)` to the largest size its line holds, smaller or
larger than its style's. The export wrote the text at its style's size: Word broke a shrunk
Expand Down Expand Up @@ -245,7 +284,9 @@ follow semantic versioning; release dates are ISO 8601.
- **Where Word holds an opaque colour only** — a cell's shading, a border, a rule — the colour
is flattened against what Word paints under it. Inside a panel or cell the export shaded, that
is the shading as written; on the page, it is read from the layout: the fills drawn before the
block at its centre, a page background included, a row's own fill (which is not written) left
block at its centre, a page background included, a row's own fill (which is not written; since
written in the flow, as a panel: see "A DOCX export writes a row's fill, outline and side
borders, as a panel holding its columns") left
out. Each is named in the report as `translucency`:
- a panel's fill and borders, once per panel;
- a table cell's fill and rules, once per table;
Expand Down Expand Up @@ -525,7 +566,8 @@ follow semantic versioning; release dates are ISO 8601.
row is written as a table with no shading or borders, and a page zone's row as one line.
Now `DROPPED`, `row paint`, naming which of them, and `rounded` where a corner radius
rounds them; a row of no columns is named where the layout gives it height, as the page
paints only then. A row composed in a table cell is `DROPPED` where the cell drew none of
paints only then (since written in the flow, as a panel: see "A DOCX export writes a row's
fill, outline and side borders, as a panel holding its columns"). A row composed in a table cell is `DROPPED` where the cell drew none of
its paint — round text it never draws any — and `APPROXIMATED` where the table drew
shapes, since a cell's paint is drawn where it frames no text and the layout does not say
which box is the row's;
Expand Down
Loading
Loading