Version 0.14.0
- Added PDF 2.0 Tagged PDF and document structure features
- Added capability to use structure namespaces
- Added PDF 2.0 structure roles with their relations to PDF 1.7 structure roles
- Added capability to specify the pronunciation for structure tree elements
- Added
StructElement::refsto write the/Refkey, specifying structure elements this element refers to - Added PDF 2.0 attribute owners
Artifact,HTML-5.00,CSS-3,RDFa-1.10,ARIA-1.1,NSO - Allowed writing PDF 2.0 form of the CSS 1 and 2 attribute owners by adding a parameter to
Attributes::owner(Breaking change) - Added
ArtifactAttributeswriter - Added
LayoutAttributes::text_positionto write the/TextPositionattribute - Added
ListAttributes::continued_listandListAttributes::continued_fromto write the/ContinuedListand/ContinuedFromattributes - Added
TableAttributes::shortto write the/Shortattribute - Added PDF 2.0 variants to
ListNumberingenum (Breaking change) - Added boolean parameter to
FieldAttributes::checkedto use the PDF 2.0 serialization - Added variant
ListBoxtoFieldRoleenum (Breaking change) - Added capability to associate a file with the structure tree root
- Added the PDF/UA-2 attribute owner
FENoteand theFENoteAttributeswriter - Added the missing
Hstructure role from PDF 1.7 (Breaking change) - Added default values based on the spec to applicable enums
- Added the capability to write
Autoas a value ofLayoutAttributes::glyph_orientation_vertical. The signature of the function changed to accommodate the new data type (Breaking change) - Added the capability to write text strings with language escape sequences using
TextStrWithLang. For this purpose, many writer methods that previously acceptedTextStras an argument now accept an implementor of theTextStrLiketrait (TextStrandTextStrWithLang, Breaking change) - Added a mechanism to retrieve the category of a structure role
- Added PDF 2.0 variants to
AssociationKindenum (Breaking change) - Fixed a bug where the
BlockAlignenum contained the variantBegininstead ofBefore(Breaking change) - Fixed a bug where
AttributeOwner::Userwas serialized toUserDefinedinstead of the correctUserProperties - Fixed an inconsistency where attributes allowing either one or multiple values for each side of a rectangle only exposed one of the APIs. Affected attributes are
BorderColorandTPadding(allowed only one side) as well asBorderStyle,BorderThickness,Padding, andTBorderStyle(forced writing all four sides) (Breaking change) - Fixed a typo in the API:
AppearanceCharacteristics::alterante_captionhas been renamed toalternate_caption(Breaking change) - Fixed an inconsistency where attributes allowing either one or multiple values for each track in a column container only exposed the latter API. Affected attributes are
ColumnWidthsandColumnGap(Breaking change) - Fixed a bug where
LayoutAttributes::line_heightcould not be used because theLineHeightstruct was not exported
Version 0.13.0
- Added infrastructure for tracking PDF implementation limits
- Added
Buftype - Added
Limitstype - Added
Chunk::{limits, merge_limits} -
Content::finish,UnicodeCmap::finish, andPostScriptOp::encodenow return aBuf(Breaking change)
- Added
- The
GlyphIdtrait is now properly public
Version 0.12.1
- PostScript operations are now space- instead of newline-delimited
- Added
StructElement::id - Added
ViewerPreferences::display_doc_title - Fixed
DecodeParms::colorswriting the wrong name - Fixed
DeveloperExtensionwriting the wrong/Type
Version 0.12.0
- Added
Content::state_nesting_depth, which can be used to get the q/Q nesting depth for PDF implementation limit compliance - Added
association_kindmethod toFileSpec - Added
AssociationKindenum - Added
associated_filestoAnnotation,Catalog,Page,ImageXObject, andFormXObject - Added
embedded_file_with_unicodetoFileSpec - Added additional
PageModes (Breaking change) - Fixed return type of
Chunk::refs(fromimpl IntoIteratortoimpl ExactSizeIterator, so maybe not actually breaking?)
Version 0.11.0
- Added
Pdf::set_binary_marker(thanks to @LaurenzV) - Added
Chunk::refs(thanks to @LaurenzV) - Added
Catalog::associated_files(thanks to @NiklasEi) - Added
FontDescriptor::{style, descriptor_override, cid_set} - Added
FontDescriptorOverridetype and methods - Added
CjkClassandWModeenums - Added
Cmap::{writing_mode, use_cmap_stream, use_cmap_predefined} - Added
UnicodeCmap::with_writing_mode - Added lots of documentation about PDF/A compliance
- Fixed return type of
Catalog::output_intents(Breaking change)
Version 0.10.0
- Added support for interactive forms (thanks to @tingerrr), specifically
- Widget annotations
- Trigger events
- Field dictionaries
- Form field types
- Interactive form dictionaries
- Added support for videos and multimedia (thanks to @awehrfritz)
- Added
Chunk::destination(thanks to @Heinenen) - Added support for decode parameters
- Fixed
Page::annotations, which shall contain indirect references (Breaking change, thanks to @tingerrr)
Version 0.9.3
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.
Version 0.9.2
This release adds an as_bytes function the Chunk type (thanks to @cmoog).
Version 0.9.1
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).
Version 0.9.0
- Renamed
PdfWritertype toPdf(Breaking change) - Added
Chunktype for writing two things at once - Moved top-level writers from
PdfWritertoChunk,Pdfnow derefs toChunk(Breaking change) - Added
Chunk::renumberandChunk::renumber_intofor changing indirect reference IDs after writing - Added
Pdf::set_file_idfunction for setting the file ID - Added
Ref::{next, bump}for simple ID allocation - Marked
Ref::{new, get}as const - Improved writing of PDF strings
- Removed
Typetrait (it wasn't exported before, but used in bounds)