HTML to PDF in Node.js

This page describes how to use the Pdfcrowd online API to convert web pages and HTML to PDF in Node.js. The API is user-friendly and can be integrated into your application with just a few lines of code. Refer to HTML to PDF API for general information about the converter.

Below are sample PDFs generated by the API.


You can install the client library from npm
npm install pdfcrowd

Check out other installation options.

Quick Start

Here are Node.js examples for quickly getting started with the API. See more examples.


The credentials to access the API are your Pdfcrowd username and the API key. You can try out the API without registering using the following demo credentials:

  • Username: demo
  • API key: ce544b6ea52a5621fb9d55f8b542d14d

To get your personal API credentials, you can start a free API trial or buy the API license.

API Output Preview

To get a quick idea of what the API output will look like, enter a web page or upload an HTML file using the form below. It will generate several API output previews with different conversion settings. You can then choose the one that looks best, and simply copy and paste the auto-generated API integration code into your Node.js application.

Common Customizations

The API enables conversion of a web page, a local HTML file, or a string containing HTML. Conversion output can be saved to to a local file, a stream object or a variable. See the conversion input section of the documentation for more details.

The table below lists the most common customizations. You can also interactively explore the API in the API Playground.

Page size Change the page size with setPageSize or setPageDimensions . Pass -1 to setPageHeight to get a single page PDF containing the whole document.
Page orientation Change the page orientation to landscape with setOrientation.
Page margins Adjust the page margins with setPageMargins.
Headers and footers Add headers and footers with setHeaderHtml and setFooterHtml. Set the height with setFooterHeight and setHeaderHeight.
You can learn more in this tutorial.
Zoom Scale the HTML contents with setScaleFactor.
Hide or remove elements You can use the following classes in your HTML code to hide or remove elements from the output:
  • pdfcrowd-remove - sets display:none!important on the element
  • pdfcrowd-hide - sets visibility:hidden!important on the element
Learn about other options.
Use @media print You can switch to the print version of the page (if it exists) with setUsePrintMedia.
Force page break You can force a page break with
<div style="page-break-before:always"></div>
Avoid page break You can avoid a page break inside an element with the following CSS
th, td, img { page-break-inside:avoid }
Run custom JavaScript You can use setOnLoadJavascript or setCustomJavascript to alter the HTML contents with a custom JavaScript. In addition to the standard browser APIs, the custom JavaScript code can use helper functions from our JavaScript library .
Custom CSS styling You can alter CSS styling used during conversion with a custom JavaScript or using the pdfcrowd-body CSS class, which is automatically set on the HTML <body> element. You can, for example, set the H1 height to 48px by adding the following line to your CSS:
.pdfcrowd-body h1 { font-size: 48px; }
Add PDF signature You can create PDF containing a digital signature field. Such PDF can be digitally signed in, for example, Adobe Acrobat or Preview. Learn more in Create Digital Signature in PDF .
Fillable PDF form You can create fillable PDF containing interactive fields and buttons. Learn more in Create Fillable PDF Form.
HTML Templates Add data to your HTML template and convert it to PDF. Learn more in HTML Template to PDF.

Error Handling

It is recommended that you implement error handling to catch errors that the API may return, see the example code below. A list of status codes and their description can be found here.

try {
    // call the API 
catch(why) {
    // print the error
    console.error("Pdfcrowd Error: " + why);

    // print the error code
    console.error("Pdfcrowd Error Code: " + why.getCode());

    // print the error message
    console.error("Pdfcrowd Error Message: " + why.getMessage());


API Method Reference

Refer to the HTML to PDF Node.js Reference for a description of all API methods.