Current section

Files

Jump to
chromic_pdf CHANGELOG.md
Raw

CHANGELOG.md

## [0.7.2] - 2021-02-26
### Fixed
- Enforced telemetry version 0.4.2 (fixes #108)
## [0.7.1] - 2021-02-08
### Fixed
- To determine the session pool / ghostscript pool size, if not specified in the options, we now
fetch the number of schedulers at runtime, not compile time. Makes more sense. We also set a
minimum of 1 in case there is only 1 scheduler online.
## [0.7.0] - 2021-01-25
### Added
- Added option `wait_for` to wait for DOM element attribute to be set dynamically. (@jarimatti)
- New global `timeout` option for session pool allows to configure timeout of print processes.
- New global `ignore_certificate_errors` option allows to bypass SSL certificate verification.
- New global `chrome_args` option allows to pass custom flags to chrome command.
## [0.6.2] - 2020-12-28
### Fixed
- When sending HTML to Chrome with `{:html, <content>}`, wait for the `Page.loadEventFired`
notification to allow external resources (images, scripts, ...) to be fetched. (#80)
## [0.6.1] - 2020-11-17
### Fixed
- Reverted to file descriptor redirection to mitigate weird Port behaviour (#76).
## [0.6.0] - 2020-11-16
### Changed
- Elixir version housekeeping. Fixed a warning on Elixir 1.11 by adding `:eex` to
`:extra_applications`. ChromicPDF now **requires Elixir >= 1.10** for its use of
`Application.compile_env/3`.
- Dropped `poolboy` in favour of `nimble_pool`. This renders the `max_overflow` poolboy option
without effect.
- Made "online mode" the default. Chrome will resolve all URL references unless the global
option `offline: false` is set.
### Added
- Added telemetry events for the PDF generation & PDF/A conversion.
- "On Demand" mode allows to start & stop Chrome as needed, much like puppeteer does. This helps
in development to prevent leaving behind zombie processes when the BEAM is aborted with Ctrl+C.
- New global option `discard_stderr` allows to enable Chrome's stderr logging which is by default
piped to `/dev/null`.
### Fixed
- Graceful shutdown is now actually graceful in that it waits for Chrome to clean up the
debugging sessions and close the pipe on its end.
## [0.5.2] - 2020-07-17
### Fixed
- Moved static files required for PDF/A generation to /priv so they are embedded into releases.
- Moved logo files *out of* /priv so they are not included in releases.
## [0.5.1] - 2020-07-10
### Fixed
- Fixed typespecs for `Template.source_and_options/1`. `[content_option]` weren't allowed as
call to `styles/1` narrowed type to `[style_option]`.
- Added missing keys to `style_option`.
## [0.5.0] - 2020-07-10
### Changed
- Removed the `:width` and `:height` options from `Template.styles/1` and
`Template.source_and_options/1` as it turns out that Chrome does not pay attention to `@page`
dimensions and instead still sets the size of the produced PDF to US letter. Since it does not
seem possible to the PDF size in Chrome headless besides using the `paperWidth` and
`paperHeight` options, moved to a `:size` option instead that accepts names like `:a4`,
`:us_letter`, and tuples of `{<width>, <height>}` in inches. These are then passed to
`paperWidth` and `paperHeight`.
- Ditched the `preferCssPageSize` option from `Template.source_and_options/1` as it did not seem
to have any effect. See above.
### Added
- Added `zoom: 0.75` to both `#header` and `#footer` in the template as this seems to be exactly
what is needed to reverse the viewport scaling that Chrome uses on them by default. With this,
headers & footers and the content can use the same CSS styles.
- Included `-webkit-print-color-adjust: exact` rule to template so `background-color` rules are
enabled by default.
### Fixed
- Make `print_to_pdfa/2` actually accept `source_and_options()` map from `Template`.
## [0.4.0] - 2020-07-09
### Added
- Allow `{:url, <path>}` input tuples where path is only a path, and not a `file://` URL.
### Changed
- When passing a function to the `:output` parameter, the function result will now be returned as
part of the `print_to_pdf` & friends result as `{:ok, <callback_result>}` instead of `:ok`.
## [0.3.1] - 2020-04-09
### Added
- Handle `{:safe, iolist()}` tuples in API and Template (for content coming from Phoenix.View).
Expose `Template.html_concat` as potentially useful helper.
- Reset navigation history after each print job to avoid leaking information.
- Create new empty browser context for each target (similar to incognito tab).
- Restart browser target after a maximum number of PDFs have been printed to avoid memory bloat.
### Changed
- Set user agent to custom string.
- Default number of sessions in pool to half the number of available cores.
## [0.3.0] - 2020-03-30
### Added
- HTML source and header and footer template accept iolists now
- New `Template` module contains basic CSS skeleton to easily dimension & layout pages (header & footer margins)
## [0.2.0] - 2020-03-06
### Added
- Add `set_cookie` option to `print_to_pdf/2`.
- Targets now navigate to `about:blank` after PDF prints.
- Fixed the temporary file yielding way of calling `print_to_pdf/2`.
## [0.1.0] - 2020-03-02
### Added
- First release to hex.pm