NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
A step-by-step PDF writer.
Last release 4 months ago
27 May 2026
Release timing varies
gaps range from 8 days to 8 months
Some releases are documented
notes for 10 of 24 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
24 releases · first in 2021
One column per quarter.
The Primitive trait is now sealed (Breaking change)
Settings struct with writing configuration
Chunk::{with_settings, with_settings_and_capacity}Pdf::{with_settings, with_settings_and_capacity}Content::{with_settings, with_settings_and_capacity}Content::reserve and Chunk::reserveContent::{len, as_bytes}Pdf::{finish_with_xref_stream, finish_with_xref_stream_and_filter}XRefFilter typePrimitive trait is now sealed (Breaking change)Allowed writing PDF 2.0 form of the CSS 1 and 2 attribute owners by adding a parameter to Attributes::owner (Breaking change)
StructElement::refs to write the /Ref key, specifying structure elements this element refers toArtifact, HTML-5.00, CSS-3, RDFa-1.10, ARIA-1.1, NSOAttributes::owner (Breaking change)ArtifactAttributes writerLayoutAttributes::text_position to write the /TextPosition attributeListAttributes::continued_list and ListAttributes::continued_from to write the /ContinuedList and /ContinuedFrom attributesTableAttributes::short to write the /Short attributeListNumbering enum (Breaking change)FieldAttributes::checked to use the PDF 2.0 serializationListBox to FieldRole enum (Breaking change)FENote and the FENoteAttributes writerH structure role from PDF 1.7 (Breaking change)Auto as a value of LayoutAttributes::glyph_orientation_vertical. The signature of the function changed to accommodate the new data type (Breaking change)TextStrWithLang. For this purpose, many writer methods that previously accepted TextStr as an argument now accept an implementor of the TextStrLike trait (TextStr and TextStrWithLang, Breaking change)AssociationKind enum (Breaking change)BlockAlign enum contained the variant Begin instead of Before (Breaking change)AttributeOwner::User was serialized to UserDefined instead of the correct UserPropertiesBorderColor and TPadding (allowed only one side) as well as BorderStyle, BorderThickness, Padding, and TBorderStyle (forced writing all four sides) (Breaking change)AppearanceCharacteristics::alterante_caption has been renamed to alternate_caption (Breaking change)ColumnWidths and ColumnGap (Breaking change)LayoutAttributes::line_height could not be used because the LineHeight struct was not exportedContent::finish , UnicodeCmap::finish , and PostScriptOp::encode now return a Buf (Breaking change)
Buf typeLimits typeChunk::{limits, merge_limits}Content::finish, UnicodeCmap::finish, and PostScriptOp::encode now return a Buf (Breaking change)GlyphId trait is now properly publicPostScript operations are now space- instead of newline-delimited
StructElement::idViewerPreferences::display_doc_titleDecodeParms::colors writing the wrong nameDeveloperExtension writing the wrong /TypeAdded additional PageMode s (Breaking change)
Content::state_nesting_depth, which can be used to get the q/Q nesting depth for PDF implementation limit complianceassociation_kind method to FileSpecAssociationKind enumassociated_files to Annotation, Catalog, Page, ImageXObject, and FormXObjectembedded_file_with_unicode to FileSpecPageModes (Breaking change)Chunk::refs (from impl IntoIterator to impl ExactSizeIterator, so maybe not actually breaking?)Fixed return type of Catalog::output_intents ( Breaking change )
Pdf::set_binary_marker (thanks to @LaurenzV)Chunk::refs (thanks to @LaurenzV)Catalog::associated_files (thanks to @NiklasEi)FontDescriptor::{style, descriptor_override, cid_set}FontDescriptorOverride type and methodsCjkClass and WMode enumsCmap::{writing_mode, use_cmap_stream, use_cmap_predefined}UnicodeCmap::with_writing_modeCatalog::output_intents (Breaking change)Fixed Page::annotations , which shall contain indirect references ( Breaking change , thanks to @tingerrr )
Chunk::destination (thanks to @Heinenen)Page::annotations, which shall contain indirect references (Breaking change, thanks to @tingerrr)This release makes UnicodeCmap generic with a default to u16 to fix writing of CMaps for Type 3 and other simple fonts, which support just 256 glyphs.
This release makes UnicodeCmap generic with a default to u16 to fix writing of CMaps for Type 3 and other simple fonts, which support just 256 glyphs.
This release adds an as_bytes function the Chunk type (thanks to @cmoog ).
This release adds an as_bytes function the Chunk type (thanks to @cmoog).
This release fixes a bug with string writing introduced in the previous version. The bug affected the writing of invisible ASCII characters that have
This release fixes a bug with string writing introduced in the previous version. The bug affected the writing of invisible ASCII characters that have one of the two high bits set (only DEL).
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →