For the complete documentation index, see llms.txt. This page is also available as Markdown.

Build a React PDF viewer with Apryse WebViewer SDK and Vite

Create React App was once the standard for scaffolding React applications, but it has since been deprecated in favor of tools like Vite. This guide shows how to build a React PDF viewer using the Apryse WebViewer SDK with React and Vite. You’ll learn how to integrate the SDK into a React application to render, view, and interact with PDF documents using the WebViewer UI.

You can also download a ready-to-use GitHub sample to get started quickly, or explore the interactive Showcase demo to see WebViewer's full capabilities in action.

Prerequisites

This guide assumes basic familiarity with React development. Before you start:

spinner

1. Create a React project

In this section, you’ll create a new React with Vite application using npm. This project provides the foundation for integrating Apryse WebViewer. If you already have a React app, skip this and continue to Install WebViewer.

  1. In your terminal, go to the directory where you want to create the project.

  2. Create a new webviewer-react project using a minimal setup:

npx -y create-vite@latest webviewer-react --template react

Info

Flags are used to skip prompts during project configuration. The Vite setup selects React as the framework and uses Javascript. Select different options if preferred.

  1. If prompted to install with npm and start now, select No.

  2. Navigate to your new React project directory and install dependencies:

2. Install WebViewer

Next, install the Apryse WebViewer SDK using npm. This command adds the WebViewer package to your project, allowing you to integrate the PDF viewer and editor into your React application.

After navigating to your webviewer-react project directory, run the following command to install WebViewer:

3. Copy WebViewer assets

WebViewer needs access to its static assets at runtime, including WebAssembly modules, HTML, and CSS files. In a React project, you must copy these assets into the public directory so they can be served correctly. For more, see Copying WebViewer static assets.

  1. From your project root, create the public/lib/webviewer directory if it doesn't already exist:

  1. Copy all WebViewer static assets from node_modules/@pdftron/webviewer/public into the new public/lib/webviewer directory:

Your project should now include a similar structure:

Info

The path option used when initializing WebViewer must point to this directory (for example, /lib/webviewer). If the path is incorrect, WebViewer will fail to load.

4. Create the PDF viewer

Next, instantiate the Apryse WebViewer SDK and mount it in your React project. This involves creating a container for the viewer and initializing WebViewer so it loads correctly at runtime.

  1. In Visual Studio Code, replace the contents of the src/App.jsx file with the following and save:

Info

If you're signed in with an Apryse account, your license key is automatically prepopulated in all code snippets.

  1. Replace the contents of the src/main.jsx file with the following and save:

Info

In React 18 and later, useEffect may run twice in development when Strict Mode is enabled (which Vite uses by default). This can cause WebViewer to initialize twice and to display a duplicate instance. This behavior is expected and doesn't affect production builds.

For this example, you can avoid duplicate initialization by removing the StrictMode wrapper in src/main.jsx. However, note that Strict Mode helps identify issues like memory leaks, so removing it isn't recommended for production or more complex applications.

5. Verify your output

You can now load and display a PDF document in the WebViewer UI. Run your React application to launch WebViewer and see the PDF in your browser.

  1. From your project directory, run the following command to start the application:

A successful output looks similar to:

  1. Open the localhost URL from your terminal to view the WebViewer UI and PDF document.

Get started video

In this 7-minute video, learn how to install and integrate the Apryse WebViewer SDK into a React project built with Vite.

Integrate the WebViewer SDK in a React with Vite application.

Next steps

UsageGuidesSamplesAPI docs

Last updated

Was this helpful?