html-pdf-node-core
Pagination plugin for converts html or url to pdf
Note: This plugin will convert html page or public URL into PDF. This will work with Node.js
Goal
The goal fo this fork is to make use of pupeteer-core instead of pupeteer, also using chrome-aws-lambda in order to be able to upload this function inside a netlify/aws lambda
Installation
npm install html-pdf-node-core
Usage
To convert HTML
page to PDF
using generatePdf
method:
var html_to_pdf = require('html-pdf-node');
let options = { format: 'A4' };
// Example of options with args //
// let options = { format: 'A4', args: ['--no-sandbox', '--disable-setuid-sandbox'] };
let file = { content: "<h1>Welcome to html-pdf-node</h1>" };
// or //
let file = { url: "https://example.com" };
html_to_pdf.generatePdf(file, options).then(pdfBuffer => {
console.log("PDF Buffer:-", pdfBuffer);
});
html_to_pdf.generatePdf ( [file], [options], [callback] )
Parameters
file
<Object> File object should have one of the following properties:
options
<Object> Options object should have the following properties:
-
args
<Array<string>> Additional arguments to pass to the browser instance. The list of Chromium flags can be found here. This options will overwrite the default arguments. The default arguments are['--no-sandbox', '--disable-setuid-sandbox']
. -
path
<string> The file path to save the PDF to. Ifpath
is a relative path, then it is resolved to current working directory. If no path is provided, the PDF won't be saved anywhere. -
scale
<number> Scale of the webpage rendering. Defaults to1
. Scale amount must be between 0.1 and 2. -
displayHeaderFooter
<boolean> Display header and footer. Defaults tofalse
. -
headerTemplate
<string> HTML template to print the header. Should be valid HTML markup with following classes used to inject printing values into them:-
date
formatted date -
title
document title -
url
document location -
pageNumber
current page number -
totalPages
total pages in the document
-
-
footerTemplate
<string> HTML template to print the footer. Should use the same format as theheaderTemplate
. -
printBackground
<boolean> Print background graphics. Defaults tofalse
. -
landscape
<boolean> Paper orientation. Defaults tofalse
. -
pageRanges
<string> Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means print all pages. -
format
<string> Paper format. If set, takes priority overwidth
orheight
options. Defaults to 'Letter'. -
width
<string|number> Paper width, accepts values labeled with units. -
height
<string|number> Paper height, accepts values labeled with units. -
margin
<Object> Paper margins, defaults to none. -
preferCSSPageSize
<boolean> Give any CSS@page
size declared in the page priority over what is declared inwidth
andheight
orformat
options. Defaults tofalse
, which will scale the content to fit the paper size.
Return value
Promise which resolves with PDF buffer.
html_to_pdf.generatePdfs ( [files], [options], [callback] )
Parameters
files
<Array<Object>> File object should have one of the follwing properties:
options
<Object> Options object should have the following properties:
-
args
<Array<string>> Additional arguments to pass to the browser instance. The list of Chromium flags can be found here. This options will overwrite the default arguments. The default arguments are['--no-sandbox', '--disable-setuid-sandbox']
. -
path
<string> The file path to save the PDF to. Ifpath
is a relative path, then it is resolved to current working directory. If no path is provided, the PDF won't be saved anywhere. -
scale
<number> Scale of the webpage rendering. Defaults to1
. Scale amount must be between 0.1 and 2. -
displayHeaderFooter
<boolean> Display header and footer. Defaults tofalse
. -
headerTemplate
<string> HTML template to print the header. Should be valid HTML markup with following classes used to inject printing values into them:-
date
formatted date -
title
document title -
url
document location -
pageNumber
current page number -
totalPages
total pages in the document
-
-
footerTemplate
<string> HTML template to print the footer. Should use the same format as theheaderTemplate
. -
printBackground
<boolean> Print background graphics. Defaults tofalse
. -
landscape
<boolean> Paper orientation. Defaults tofalse
. -
pageRanges
<string> Paper ranges to print, e.g., '1-5, 8, 11-13'. Defaults to the empty string, which means print all pages. -
format
<string> Paper format. If set, takes priority overwidth
orheight
options. Defaults to 'Letter'. -
width
<string|number> Paper width, accepts values labeled with units. -
height
<string|number> Paper height, accepts values labeled with units. -
margin
<Object> Paper margins, defaults to none. -
preferCSSPageSize
<boolean> Give any CSS@page
size declared in the page priority over what is declared inwidth
andheight
orformat
options. Defaults tofalse
, which will scale the content to fit the paper size.
Return value
Promise which resolves with array of object which contains file objects with PDF buffers.
Example:
let options = { format: 'A4' };
let file = [{ url: "https://example.com", name: 'example.pdf' }];
html_to_pdf.generatePdfs(file, options).then(output => {
console.log("PDF Buffer:-", output); // PDF Buffer:- [{url: "https://example.com", name: "example.pdf", buffer: <PDF buffer>}]
});