nxus-printer

Print/screenshot module for nxus

Usage no npm install needed!

<script type="module">
  import nxusPrinter from 'https://cdn.skypack.dev/nxus-printer';
</script>

README

nxus-printer

Printer

Extends NxusModule

Page wrapper for rendering

The module defines a printer page wrapper, similar to bare, but with settings to initialize the Puppeteer environment.

Deployment to Heroku

When deployed to Heroku, the renderer requires the puppeteer Buildpack:

```
https://github.com/jontewks/puppeteer-heroku-buildpack
```

Add it to the list of Buildpacks on the application Settings panel. Or add it to buildpacks in app.json: {"url": "jontewks/puppeteer"}

It also requires the following configuration variables:

  • nxus_baseUrl - The host component of URLs for renderable pages. It is typically the host component of the domain configured for the Heroku application. When a page is rendered, the full URL for the page is formed by combining this host component with a protocol component and a root-relative path component.

By default, the puppeteer browser is configured to run without chrome sandboxing. Use appropriately.

renderPage

Renders a printable version of a web page. Launch options for puppeteer can be set in the nxus configuration printer.puppeteer property.

Parameters

  • relativeUrl string root-relative URL of the page to be rendered (the path and query string components, but not the protocol or host components)
  • options Object rendering options:- type - rendered format, used as file type (default pdf); supports pdf, png, jpg/jpeg
    • secure - if true, use https subdomain - prepend the application config baseUrl with this sub-domain if set
    • width and height will override the PDF/image rendering format (normally "Letter")
    • other options are passed to the pdf rendering (optional, default {})

Returns Promise promise that resolves to the path to the rendered output.