How to Build a PDFium PDF Viewer with PSPDFKit
In this post, we provide you with a step-by-step guide outlining how to deploy PSPDFKit’s PDFium-based JavaScript PDF Viewer.
PDFium is an open source PDF rendering library that was released by Google in 2014. Currently, PDFium is used to open billions of PDFs directly in the Chrome browser. At PSPDFKit, we leverage PDFium to render PDFs in our commercial PDF viewers.
In addition to our JavaScript integration, you can also deploy our PDFium-based viewer on other platforms, including iOS, Android, Windows, and Mac Catalyst.
What Is a JavaScript PDF Viewer?
A JavaScript PDF viewer uses JavaScript to render and view PDF documents in a web browser without the need to download it to your hard drive or use an external application like a PDF reader.
PSPDFKit PDFium PDF Viewer
Our PDFium-based PDF viewer can easily be integrated into your web application. It 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 for an improved user experience
- 15+ prebuilt annotation tools to enable document collaboration
- Browser-based text editing, page cropping, merging, rotating, and more
- Support for more file types with client-side PDF, MS Office, and image viewing
- Dedicated support from engineers to speed up integration
Example of Our JavaScript PDF Viewer
To see our PDF viewer in action, upload a PDF file by selecting Choose Example > Open Document (if you don’t see this, switch to the Standalone option). Once your file is displayed in the viewer, you can try drawing freehand, adding a note, or applying a crop or an e-signature.
If you prefer a video tutorial, watch our step-by-step guide.
Requirements
To get started, you’ll need:
- The latest stable version of Node.js.
- A package manager compatible with npm. This guide contains usage examples for the npm client (installed with Node.js by default).
Adding PSPDFKit to Your Project
-
Now, you can install the
pspdfkit
package fromnpm
. If you prefer, you can also download PSPDFKit for Web manually:
npm install pspdfkit
-
For PSPDFKit for Web to work, you have to copy the directory containing all the required library files (artifacts) to the
assets
folder. You can use the following command to do this:
cp -R ./node_modules/pspdfkit/dist/ ./assets/
Make sure your assets
directory contains the pspdfkit.js
file and a pspdfkit-lib
directory with the library assets.
Integrating into Your Project
-
Add the PDF document you want to display to your project’s directory. You can use our demo document as an example.
-
Add an empty
<div>
element with a defined height to where PSPDFKit will be mounted:
<div id="pspdfkit" style="height: 100vh;"></div>
-
Include
pspdfkit.js
in your HTML page:
<script src="assets/pspdfkit.js"></script>
-
Initialize PSPDFKit for Web in JavaScript by calling
PSPDFKit.load()
:
<script> PSPDFKit.load({ container: "#pspdfkit", document: "document.pdf" // Add the path to your document here. }) .then(function(instance) { console.log("PSPDFKit loaded", instance); }) .catch(function(error) { console.error(error.message); }); </script>
You can see the full index.html
file below:
<!DOCTYPE html> <html> <head> <title>My App</title> <!-- Provide proper viewport information so that the layout works on mobile devices. --> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> </head> <body> <!-- Element where PSPDFKit will be mounted. --> <div id="pspdfkit" style="height: 100vh;"></div> <script src="assets/pspdfkit.js"></script> <script> PSPDFKit.load({ container: '#pspdfkit', document: 'document.pdf', }) .then(function (instance) { console.log('PSPDFKit loaded', instance); }) .catch(function (error) { console.error(error.message); }); </script> </body> </html>
Serving Your Website
You’ll use the npm serve
package to serve your project.
-
Install the
serve
package:
npm install --global serve
-
Serve the contents of the current directory:
serve -l 8080 .
-
Navigate to
http://localhost:8080
to view the website.
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 JavaScript guides:
- Annotating and marking up PDFs
- Editing documents
- Filling PDF forms
- Adding signatures to documents
- Customizing the viewer UI
- View all documentation
Conclusion
You should now have our PDFium-based PDF 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 also offer a variety of web framework deployment options for our PDF viewer, like Angular and React.js. To see a list of all web frameworks, start your free trial. Or, launch our demo to see our viewer in action.
FAQ
How can PSPDFKit’s PDFium PDF viewer be integrated into a web application?
PSPDFKit’s PDFium-based PDF viewer can be integrated into a web application by installing the pspdfkit package from npm, copying the required library files to the assets folder, and initializing PSPDFKit for Web in JavaScript by calling PSPDFKit.load().
What features does the PSPDFKit PDFium PDF viewer offer?
The PSPDFKit PDFium PDF viewer offers over 30 features, including viewing, annotating, editing, and signing documents directly in the browser. It also supports various file types and comes with a polished and flexible UI that can be customized based on your needs.
What are the requirements to build a PDFium PDF viewer with PSPDFKit?
To build a PDFium PDF viewer with PSPDFKit, you need the latest stable version of Node.js and a package manager compatible with npm. You also need to include the PSPDFKit JavaScript file in your HTML and initialize it with the desired PDF document.
How can you serve your web application using PSPDFKit’s PDFium PDF viewer?
You can serve your web application using PSPDFKit’s PDFium viewer by installing the serve package via npm and serving the contents of the current directory. Navigate to the specified local server URL (e.g., http://localhost:8080) to view the website.