API Version 4

We have released the new major version of our rendering engine for HTML to PDF API and Screenshot API.

V4 is completely backwards compatible and can be used by just changing the API call url to https://restpack.io/api/html2pdf/v4/convert

HTML to PDF API

Features

  • Page Headers and Footers
    One of the most requested features. We now support automatically injecting header and footer templates to generated PDF documents. You can create these segments in full HTML and customize as you wish. It is also possible to insert dynamic data such as page number, document title etc into the headers and footers.
  • Custom Page Sizes
    In addition to pdf_page parameter, now it’s possible to send pdf_width and pdf_height parameters to set up a custom page size.

Changes

  • We used to generate PDFs on CSS media. However, the API now defaults to
    media in order to generate documents as close as to how they look on a browser. You can switch to using setting

Screenshot API

Features

  • Ad / Cookie Warning Blocking
    We have two new options, block_ads and block_cookie_warnings in order to apply blocking rules to the page before conversion.

JPEG Rendering Optimizations

If you are requesting jpeg images you will now receive higher quality images without any noticable file size increase. This also reflects on capture performance so in order to decrease file sizes while maintaining quality, we suggest using jpeg instead on png.

Fixed Shutters Not Firing

We have a shutter feature that can be used to wait for an element to be visible. However it was not working as expected in rare situations, causing the entire capture job to fail.

This functionality has been fixed and you can reliably use shutter options in your API calls.

Delay Option Improvements

We have made several improvements to delay option and the order which we apply the delay.

Delay is now applied after all javascript / css injection jobs are completed and several jobs causing implicit delays (such as prescrolling page to render lazy assets) are merged together so their delays will not stack together.

Wait mode: dom

It is now possible to pass wait=dom parameter in order to wait for domready event before render. The default is wait=load which waits for window.onload event.

This way you can create faster captures and handle such sites where loading hangs or takes a lot of time.

Faster API Calls

We have deployed a new capturing architecture which improves our capturing performance 30% in average. These changes have been made available to all users without any modifications required on your side.

Stability Fixes

Based on our monitoring, we identified several browser crashes occuring during captures. These have been mostly visible in the latest weeks. All issues should be resolved as of now.

API Version 3

We have a new and exciting release of the Screenshot API with many improvements, a brand new rendering engine and new features.

In order to switch to the new version you will need to change your API url from v2 to v3, as in https://restpack.io/api/screenshot/v3/capture.

It is mostly backwards compatible so you should be able to switch without any issues.

Faster Rendering: The version 3 of screenshot API is around twice as fast compared to v2.

Better Engine: Our rendering engine now uses the latest Chromium releases, providing better standards compliance.

New Wait Modes: In previous versions the API would wait for the window load event before rendering the screenshot. Now you have an option to wait for network to become idle using wait=network parameter to ensure pages load completely even with a lot of async resources.

Shutter: If you need to control the precise moment of capture, you can use shutter=<css selector> parameter to wait for a DOM element before capture. Combined with js injection, you can control the render time as you wish.

Media Emulation: Now it’s possible to emulate print css media using emulate_media=print parameter if you wish to capture pages in printing mode.

Better Retina: While the previous version had a retina mode, it came with some caveats regarding to retina image loading, now retina=true parameter creates true retina images with device scale factor of 2.

More Metadata: Using the json=true parameter now returns details regarding to the page and server response, as well as the CDN url of the captured image as it always did.

Better Error Reporting: The new API is more transparent regarding to the errors caused by the remote server or on our end. You can work around errors more easily due to this granular error information.

Ability To Capture Error Pages: The previous API would only capture pages with status code of 200-299, now you can override this behavior using allow_failed=true parameter.

New Service IP Addresses

In order to provide a better and uninterrupted service, we will be adding more servers to our Screenshot API. If you need to whitelist our capture servers please use the following IP addresses: