Blog Post

How to Build a PDFium PDF Viewer with PSPDFKit

Illustration: 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:

Adding PSPDFKit to Your Project

  1. Now, you can install the pspdfkit package from npm. If you prefer, you can also download PSPDFKit for Web manually:

npm install pspdfkit
  1. 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

  1. Add the PDF document you want to display to your project’s directory. You can use our demo document as an example.

  2. Add an empty <div> element with a defined height to where PSPDFKit will be mounted:

<div id="pspdfkit" style="height: 100vh;"></div>
  1. Include pspdfkit.js in your HTML page:

<script src="assets/pspdfkit.js"></script>
  1. 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.

  1. Install the serve package:

npm install --global serve
  1. Serve the contents of the current directory:

serve -l 8080 .
  1. 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:

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.

Author
Hulya Masharipov Technical Writer

Hulya is a frontend web developer and technical writer at Nutrient who enjoys creating responsive, scalable, and maintainable web experiences. She’s passionate about open source, web accessibility, cybersecurity privacy, and blockchain.

Related products
Share post
Free trial Ready to get started?
Free trial