How To Html To Pdf In Javascript

Converting HTML to PDF is a common task in web development, especially when it comes to generating reports or invoices. In this blog post, we will discuss how to convert HTML to PDF using JavaScript by using a third-party library called html2pdf.js.

Getting Started

First, you need to include the html2pdf.js library and its dependencies in your project. You can do this by downloading the library from GitHub or use the following CDN:

<script src=""></script>

Conversion Process

Once you have included the library in your project, you can convert HTML to PDF using the following steps:

  1. Get the HTML content you want to convert.
  2. Call the html2pdf() function with the HTML content as its argument.
  3. Save the resulting PDF.


Let’s say we have the following HTML content:

<div id="content">
  <h1>Hello, World!</h1>
  <p>This is a sample HTML content that will be converted to PDF.</p>

To convert this content to PDF, we can use the following JavaScript code:

const content = document.getElementById('content');
  .set({ html2canvas: { scale: 2 } })

In this example, we first get the HTML content using getElementById(). Then, we call the html2pdf() function and pass the content as its argument. The save() method is called to save the resulting PDF.

Customizing the PDF

You can customize the appearance of the PDF by passing an options object to the set() method. For example:

    filename: 'example.pdf',
    imgWidth: '800px',
    pagebreak: { mode: 'avoid-all' },
    html2canvas: { scale: 2 },
    jsPDF: { unit: 'in', format: 'letter', orientation: 'portrait' }

In this example, we have set the filename, image width, page break options, scale factor, and PDF properties such as unit, format, and orientation.


By using the html2pdf.js library, you can easily convert HTML to PDF in JavaScript. The library provides a simple and flexible API for customizing the appearance of the PDF. With just a few lines of code, you can generate professional reports, invoices, or any other printable content in your web application.