Node lib to converts HTML with property binding or url to PDF files.
- Node.js version 14 or higher
This package is available in the Node Package Repository and can be easily installed with npm or yarn
$ npm i @myunisoft/html-to-pdf
# or
$ yarn add @myunisoft/html-to-pdf
async function main() {
const browser = await initBrowser();
let readable;
try {
readable = Readable.from(generatePDF(browser, [{ content: html }], pdfOptions));
}
finally {
await terminateBrowser(browser);
}
return readable;
}
main().catch(console.error);
initBrowser(options?: PuppeteerLaunchOptions): Promise< Browser >
import { initBrowser } from "@myunisoft/html-to-pdf";
const browser = await initBrowser();
Options payload is described by the following TypeScript interface:
import {
LaunchOptions,
BrowserLaunchArgumentOptions,
BrowserConnectOptions,
Product
} from "puppeteer";
type PuppeteerLaunchOptions = LaunchOptions & BrowserLaunchArgumentOptions & BrowserConnectOptions & {
product?: Product;
extraPrefsFirefox?: Record<string, unknown>;
}
generatePDF(browser: Browser, files: pdfFile[], options?: PuppeteerPDFOptions): AsyncIterableIterator< Buffer >
files
and options
arguments are described with the following TypeScript interface/type:
interface pdfFile {
content?: string,
url?: string
}
type PuppeteerPDFOptions = PDFOptions & { paginationOffset?: number };
import * as pdf from "@myunisoft/html-to-pdf";
const browser = await pdf.initBrowser();
const pdfOptions = {};
const content = "..HTML HERE..";
const readable = Readable.from(
pdf.generatePDF(browser, [{ content }], pdfOptions)
);
// Do the work with readable (pipe to an http response for example).
terminateBrowser(browser: Browser): Promise< void >
import * as pdf from "@myunisoft/html-to-pdf";
const browser = await pdf.initBrowser();
try {
// DO THE WORK HERE
}
finally {
await pdf.terminateBrowser(browser);
}
Thanks goes to these wonderful people (emoji key):
Nicolas Hallaert 💻 📖 |
Gentilhomme 🛡️ 👀 📖 |
PierreD 💻 |
MIT