Skip to content

A simple NPM package to convert HTML to PDF for Node applications by using Puppeteer

License

Notifications You must be signed in to change notification settings

westmonroe/pdf-puppeteer

Repository files navigation

PDF-Puppeteer

NPM Version Node Requirement License Downloads/week

A simple npm package to convert HTML to PDF for Node.js applications by using Puppeteer

Getting Started

Installation

To use PDF-Puppeteer in your Node app:

npm install --save pdf-puppeteer   
# or "yarn add pdf-puppeteer"

Requirements

Node 7.6.0 or greater.

Usage

First, include the convertHTMLToPDF from the package in your .js file:

const convertHTMLToPDF = require("pdf-puppeteer");

var callback = function (pdf) {
    // do something with the PDF like send it as the response
    res.setHeader("Content-Type", "application/pdf");
    res.send(pdf);
}

/**
*    Usage
*    @param html - This is the html to be converted to a pdf
*    @param callback - Do something with the PDF
*    @param [options] - Optional parameter to pass in Puppeteer PDF options
*    @param [puppeteerArgs] - Optional parameter to pass in Puppeter arguments
*    @param [remoteContent] - Default true. Optional parameter to specify if there is no remote content. Performance will be opitmized for no remote content.
*/
convertHTMLToPDF(html, callback, options, puppeteerArgs, remoteContent);

The convertHTMLToPDF function takes the four parameters detailed above. For more information on the available Puppeteer options for PDF's take a look at Puppeteer's Page PDF Options. More details on usage can be found by checking out the example in the repo. In addition, flags for configuring how Puppeteer should be launched can be set by populating the puppeteerArgs parameter. Take a look at Puppeteer's Launch Options for example arguments.

Example

To run the example in the repo: clone the repo, npm install on the package, npm install on the example, and run the app:

git clone https://github.com/westmonroe/pdf-puppeteer.git  
cd pdf-puppeteer
npm install
cd example
npm install
node index.js

Once the example is running, the PDF route can be tested using Postman. In the example folder, you will find a Postman collection called PDF-Puppeteer.postman_collection.json with the test routes and test html included.