Changelog
v0.3.0

Format v0.3.0

  • Engine
  • React
  • Vue
  • Studio
  • Fonts
  • API

Format v0.3.0 brings faster PDF rendering, running heads, clearer bookmarks, and document language support.

Faster PDF rendering. In early benchmarks, text and table-heavy documents of around 50–400 pages took 15–29% less time from request to finished PDF.

DocumentPagesTime saved per requestReduction
Text~50290–560 ms17–27%
Tables~50400 ms15%
Text~4002.9–4.0 s18–29%
Tables~40011.9 s21%

Keep readers oriented. Add a RunningHead to a header or footer to show the current section's title and number. Show the page's first or last heading, the section continuing from the previous page, or a range of headings. The new within option on TableOfContents lets you add chapter contents alongside a document-wide table of contents.

Clearer PDF bookmarks. Bookmarks now use your heading text and numbers, preserving spaces across line breaks and the case you wrote. Use <Bookmarks> in React or Vue to change the separator or omit heading numbers. Set data-bookmark on a heading for a shorter title, or leave it empty to exclude that heading. Links to elements styled with display: contents now land on their content.

Declare your document's language. Set lang on Document in React or Vue, or data-lang on an HTML document template. Format records the language in your PDF so screen readers can use the appropriate voice and pronunciation. Studio flags missing or invalid language tags and shows how to fix them.

Style content across pages. Split elements and Flow regions now carry data-split, data-split-start, data-split-continued, and data-split-end attributes. Use them to add continuation labels or adjust borders and spacing at page breaks.

More reliable pagination. Headings kept with the next block now move correctly across nested Flows. Long lists fill the available space and retain their numbering across pages. A fix to font loading prevents intermittent table-of-contents overflow errors. Content that overflows fixed-height CSS columns now returns COLUMN_OVERFLOW instead of disappearing from the output.

Smaller PDFs with richer metadata. PDF optimization now shares repeated content and removes redundant structure without changing the page's appearance. PDFs include XMP metadata, and supporting viewers show the document title instead of the filename.

More serif weights. Format Serif now includes weights 200, 300, and 900 in normal and italic, completing its 200–900 range.

Consistent request limits. HTML sent through the SDKs can now exceed 1 MiB, up to the 10 MiB limit. Both multipart and JSON requests enforce that limit. Oversized requests return 413 with PAYLOAD_TOO_LARGE instead of an internal server error. JSON requests containing more than 10 MiB of HTML, which previously passed, are now rejected.

Upgrading. Run format update to move your project to v0.3.0:

format update 0.3.0

Set a language on every document, including English documents: use lang="en" in React or Vue, or data-lang="en" on the HTML document template. Hosted rendering no longer assumes English, including for documents pinned to older engines. Upgrade and declare a language to include it in the PDF.