How to Build a React.js Image Viewer with PSPDFKit

In this post, we provide you with a step-by-step guide on how you can deploy PSPDFKit’s React.js Image Viewer. React.js is a JavaScript library for building user interfaces, and according to the Stack Overflow 2021 Developer Survey, React is the most popular web framework.
What Is a React Image Viewer?
A React image viewer lets you render and view images in a web browser without the need to download it to your hard drive or use an external application like an image reader.
PSPDFKit React Image Viewer
We offer a commercial React.js image viewer library that can easily be integrated into your web application. The React image viewer library supports rendering JPEG, PNG, and TIFF files in any modern browser and on any mobile device without any plugins. It offers developers a way to quickly embed a highly configurable image or PDF viewer with a beautiful UI in any web application.
It also comes with 30+ features that let you view, annotate, edit, and sign documents directly in your browser. Out of the box, it has a polished and flexible UI that you can extend or simplify based on your unique use case.
- A prebuilt and polished UI
- 15+ annotation tools
- Cropping and rotation tools
- Support for multiple file types
- Dedicated support from engineers
Example of Our React Image Viewer
To see our image viewer in action, upload a JPG, PNG, or TIFF file by selecting Choose Example > Open Document. Once your image is displayed in the viewer, you can try drawing freehand, adding a note, or applying a crop or an e-signature.
Requirements to Get Started
To get started, you’ll need:
-
A package manager compatible with npm. This guide contains usage examples for Yarn and the npm client (installed with Node.js by default).
Creating a New React Project
-
Create a new React app using the Create React App tool:
yarn create react-app pspdfkit-react-example
npx create-react-app pspdfkit-react-example
-
Change to the created project directory:
cd pspdfkit-react-example
Adding PSPDFKit to Your Project
-
Add the PSPDFKit dependency:
yarn add pspdfkit
npm install pspdfkit
-
Copy the PSPDFKit for Web library assets to the
public
directory:
cp -R ./node_modules/pspdfkit/dist/pspdfkit-lib public/pspdfkit-lib
The above code will copy the pspdfkit-lib
directory from within node_modules/
into the public/
directory to make it available to the SDK at runtime.
-
Make sure your
public
directory contains apspdfkit-lib
directory with the PSPDFKit library assets.
Displaying an Image
-
Add the image you want to display to the
public
directory. You can use our demo image as an example. -
Add a component wrapper for the PSPDFKit library and save it as
components/ViewerComponent.js
:
import { useEffect, useRef } from 'react'; export default function ViewerComponent(props) { const containerRef = useRef(null); useEffect(() => { const container = containerRef.current; let instance, PSPDFKit; (async function () { PSPDFKit = await import('pspdfkit'); instance = await PSPDFKit.load({ // Container where PSPDFKit should be mounted. container, // The document to open. document: props.document, // Use the public directory URL as a base URL. PSPDFKit will download its library assets from here. baseUrl: `${window.location.protocol}//${window.location.host}/${process.env.PUBLIC_URL}`, }); })(); return () => PSPDFKit && PSPDFKit.unload(container); }, []); return ( <div ref={containerRef} style={{ width: '100%', height: '100vh' }} /> ); }
-
Include the newly created component in
App.js
:
// src/App.js import ViewerComponent from './components/ViewerComponent'; function App() { return ( <div className="App"> <div className="PDF-viewer"> <ViewerComponent document={'image.png'} /> </div> </div> ); } export default App;
-
Your project structure should now look like this:
pspdfkit-react-example ├── public │ ├── pspdfkit-lib │ └── image.png ├── src │ ├── components │ | └── ViewerComponent.js | └── App.js ├── package.json └── yarn.lock
-
Start the app and run it in your default browser:
yarn start
npm start
Adding Even More Capabilities
Once you’ve deployed your viewer, you can start customizing it to meet your specific requirements or easily add more capabilities. To help you get started, here are some of our most popular React.js guides:
- Adding annotations
- Editing documents
- Filling PDF forms
- Adding signatures to documents
- Real-time collaboration
- Redaction
- UI customization
Conclusion
You should now have our React image viewer up and running in your web application. If you hit any snags, don’t hesitate to reach out to our support team for help.
We created similar how-to blog posts using different web frameworks and libraries:
- How to Build an Angular Image Viewer with PSPDFKit
- How to Build a JavaScript Image Viewer with PSPDFKit
- How to Build a jQuery Image Viewer with PSPDFKit
To see a list of all web frameworks, start your free trial. Or, launch our demo to see our viewer in action.