Breaking changes for developers who are upgrading:
- Support for PHP 5.x and HHVM has been removed. PHP 7.0 or higher is required from this version.
- The `intl` PHP extension is now required ([see docs](https://www.php.net/manual/en/book.intl.php)). This replaces the use of `mbstring` and `iconv`, which are no longer used.
- [composer](https://getcomposer.org/) is now required to correctly load dependencies, where it was previously optional.
- `Printer::text()` will now throw an `Exception` if invalid UTF-8 is supplied. Use `Printer::textRaw()` if you are encoding text manually.
- Printer-specific sub-classes of `CapabilityProfile` have been removed (eg. `StarCapabilityProfile`). Use a named profile with `CapabilityProfile::load()` instead.
- The API now uses scalar and return type hinting in some places, which makes it more strict than it was previously.
New features:
- Inclusion of new printer profiles from [escpos-printer-db](https://github.com/receipt-print-hq/escpos-printer-db).
- [gfx-php](https://github.com/mike42/gfx-php) has been added as a dependency, which allows image processing to work without `gd` or `imagick` being present in most cases.
- A new `MultiplePrintConnector` has been added, which allows developers to route identical print data to multiple printers simultaneously.
Experimental features:
- A new `UnifontPrintBuffer`, which uses glyphs from a GNU Unifont hex file as an alternative to the on-board printer fonts. See the included `unifont-print-buffer.php` example for usage.
Bug fixes:
- Added checks where temporary files are created, to give clearer error messages on setups where the temp directory is misconfigured, see 362