You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A paragraph states its own font, so a run that names none of its own is read
at that font instead of at nothing. Slides whose text was there but invisible
now show it.
An empty paragraph keeps the height its font implies, whether or not the file
names a size for it, and copying across one yields a blank line.
A sheet's cells read in the font the file names, falling back to the sheet's
own only where it names none.
An image stays inside its frame on a page read without the shipped stylesheet,
rather than covering the whole page.
A frame that names a side instead of an offset sits on that side, so a centred
image in an odt is centred. The side it names is GraphicStyle's new horizontal_position, carried by the python, java and objc bindings.
A pdf that comments its content stream renders: % to the end of the line is
white space wherever it stands, not the start of a token.
Text that decodes to half a surrogate pair costs that character a replacement
mark instead of the whole document.
A pdf's text sits where the file puts it: a line was placed against the
browser's default font rather than its own, which dropped small text by
several points.
A pdf's cmyk colours are converted as Adobe converts them, so a process cyan
reads as one instead of as pure #00ffff.
A pdf page is the size of its crop box and shows what is on it and no more,
as a viewer shows it.
A pdf's JPEG 2000 images render. New dependency: openjpeg.
A frame anchored to the page sits where the page says, whatever the text
around it wraps like - a letter's address and date boxes land in their fields
instead of in the running text.
A text document is laid out on the master page it names, so a letter template
keeps the margins that leave room for its letterhead.
A docx or odt that chains its styles deeply opens instead of taking the
process down with it: the w:basedOn / style:parent-style-name chain is
walked onto a stack rather than recursed, so its length costs no stack.
A document's xml parts are read once instead of buffered twice on the way into
the parser, which lowers the memory opening a large one takes.
Fixes
Put a frame where its style says, and keep its image inside (#684)
Give a paragraph its own font, and an empty one a line break (#687)
Read a comment as white space, and half a pair as one mark (#688)
Place text by its own font, decode jpeg 2000, and clip to the crop box (#689)
Put a page-anchored frame on the page, and lay a document out on the master page it names (#690)
Walk a style's parent chain instead of recursing it, and read an xml part once (#691)
Refactoring
Name the boxes a frame anchors against, not every element (#685)
Aim the sheet's cell styling at the sheet's own cells (#686)