React
HTML to PDF
web development
JavaScript
PDF generation
frontend development
programming tutorials

How to Convert HTML to PDF in React

Deepak Tewatia
August 28, 2025
3 min read

Introduction

If you want to turn HTML into a PDF in your React app, you're in the right place. It's straightforward if you use a library called react-to-print. Let's break it down step by step.

What is react-to-print?

react-to-print is a library that helps you print React components. It can also be used to save components as PDF files. This makes it great for reports, invoices, or any other HTML content you might want to share.

Setting Up Your Project

First, you need to install react-to-print in your project. Open your terminal and run the following command:

npm install react-to-print

Once you have installed the library, you can start using it in your components.

Creating Your Component

Next, let’s create a simple component that contains the HTML you want to turn into a PDF. Below is an example of how you might set this up:

import React, { useRef } from 'react';
import ReactToPrint from 'react-to-print';

class ComponentToPrint extends React.Component {
    render() {
        return (
            <div>
                <h2>Your HTML Content</h2>
                <p>This is the content that will be turned into a PDF.</p>
            </div>
        );
    }
}

const PrintButton = () => {
    const componentRef = useRef();

    return (
        <div>
            <ReactToPrint
                trigger={() => <button>Print this out!</button>}
                content={() => componentRef.current}
            />
            <ComponentToPrint ref={componentRef} />
        </div>
    );
};

export default PrintButton;

How It Works

In this code, you have a ComponentToPrint class that holds your HTML content. The PrintButton functional component uses useRef to create a reference to the content you want to print. When the user clicks the button, it triggers react-to-print to handle the printing.

Styling Your PDF

Sometimes, you might want your PDF to look nice. You can add CSS inside your component just like you do for regular HTML. Make sure that your styles are applied properly so that when it gets printed, it matches your design.

Testing the Functionality

After you set everything up, it's important to test the button. Make sure it opens the print dialog and that you can save the PDF. Sometimes, you may find small issues like margins or font sizes. Adjust your CSS as needed to get the right look.

Common Issues

  • Content Not Appearing: Make sure your component is correctly referenced with useRef.
  • Styling Problems: Check if your styles are being loaded correctly in the printed version.
  • Browser Compatibility: Ensure you're using a supported browser for printing PDFs.

Conclusion

Now you know how to convert HTML to PDF in your React app with the react-to-print library. This method is easy and effective for sharing your content. Give it a try, and you will find it simple to implement!