@cityssm/pdf-puppeteer
Version:
A simple NPM package to convert html to pdf for Node applications by using Puppeteer
74 lines (60 loc) • 1.67 kB
text/typescript
import type { puppeteer } from '@cityssm/puppeteer-launch'
import { millisecondsInOneMinute, secondsToMillis } from '@cityssm/to-millis'
/*
* PDF Options
*/
export const defaultPdfOptions: puppeteer.PDFOptions = {
format: 'Letter',
printBackground: true
} as const
/*
* PDF Puppeteer Options
*/
export interface PDFPuppeteerOptions {
/**
* If the Puppeteer browser instance should be saved between calls.
* Default: false
*/
cacheBrowser: boolean
/**
* If the given HTML references remote content, like images and stylesheets.
* Speed can be increased when set to false.
* Default: true
*/
remoteContent: boolean
/**
* If the HTML parameter is actually a URL.
* Default: false
*/
htmlIsUrl: boolean
/**
* The browser to use.
* Default: 'chrome'
*/
browser?: puppeteer.SupportedBrowser
/**
* If the sandbox should be disabled.
* Default: false
*/
disableSandbox: boolean
/**
* If true, use whatever version of Puppeteer is installed,
* which could be a legacy version.
* Default: false
*/
usePackagePuppeteer: boolean
}
export const defaultPdfPuppeteerOptions: PDFPuppeteerOptions = {
cacheBrowser: false,
disableSandbox: false,
htmlIsUrl: false,
remoteContent: true,
usePackagePuppeteer: false
} as const
export const defaultPuppeteerOptions: puppeteer.LaunchOptions = {
browser: 'chrome',
headless: true,
timeout: secondsToMillis(30)
}
export const htmlNavigationTimeoutMillis = millisecondsInOneMinute
export const urlNavigationTimeoutMillis = htmlNavigationTimeoutMillis * 2