# v0.2.0 (2021-06-17) This release improves the font handling, adds support for embedding images and contains many small improvements and bugfixes. Thanks to Alexander Dean-Kennedy for implementing the images support and to Scott Steele for contributing a bug fix. ## Breaking Changes - Improve the font handling: - Make `FontFamily` generic over the font data type. - Make the fields of the `FontFamily` struct public. - Load the PDF font in `Renderer::load_font` from bytes instead of a path. - Separate font loading and font caching: - Replace the `load_font` and `load_font_family` methods of the `FontCache` struct with `add_font` and `add_font_family`, and the `load_font_family` method of `Document` with `add_font_family`. - Add the `FontData::load` method and the `fonts::load_from_files` function. - Change the arguments of the `FontCache::new` and `Decorator::new` methods. - Make the `Document::new`, `Document::add_font_family`, `FontCache::new`, `FontCache::add_font`, `FontCache::add_font_family` and `Font::new` methods infallible. - Add support for built-in fonts. - Added the `Error::UnsupportedEncoding` variant. - Change the return type of the `Area::print_str` and `TextSection::print_str` methods to return a `Result`. - Move the `FontCache` instance used during the rendering process to the new `Context` struct. - Remove the `Document::set_margins` method (use a `PageDecorator` instead). - Replace the `PdfprintError` variant of `ErrorKind` with `PdfError` and `PdfIndexError`. - Change the return type of `render::Area::text_section` from `Result<_, ()>` to `Option<_>`. - Bump the MSRV to 1.45.0. - Move `Alignment` struct out of `elements` module. ## Non-Breaking Changes - Add the `StyledCow<'s>` struct that contains a `Cow<'s, str>` with a `Style` annotation. - Derive `Copy` for `StyledStr`. - Add support for hyphenation (enabled by the `hyphenation` feature). - Add the `PageBreak` element. - Implement `From>` for `Paragraph`. - Add the `PageDecorator` trait, the `SimplePageDecorator` implementation and the `Document::set_page_decorator` method to allow customization of all document pages. - Add support for kerning and add the `Font::kerning` and `Font::glyph_ids` methods. - Add the `error::Context` trait for easier error generation. - Add support for `Image` as a possible insertable element. ## Bug Fixes - Always use the configured paper size when adding new pages to a `Document`. # v0.1.1 (2020-10-16) This patch release adds some trait implementations and utility functions and improves the crate documentation. Thanks to Matteo Bertini for contributions. - Implement `From<&String>` for `StyledString`. - Derive `Add`, `AddAssign`, `Sub` and `SubAssign` for `Position` and `Size`. - Implement `From` for `printpdf::Point`. - Add `split_horizontally` method to `Area`. - Add `width` method to `StyledString` and `StyledStr`. - Add `font_cache` method to `Document`. # v0.1.0 (2020-10-15) Initial release with support for formatted text, text wrapping and basic shapes.