This guide will help you integrate a free trial of PDF.js Express into Electron applications on the browser. It will help you clone the Electron sample repository, walk through the project structure, and show you how to call other PDF.js Express APIs. Your free trial includes unlimited trial usage and support from solution engineers.
Get the Electron sample source code here
Prerequisites
Platform specific prerequisites.
Electron applications can be built for several platforms and each has its own prerequisites. Please ensure they are fulfilled for your required platform by referring to the
electron.js
documentation.
Initial setup
Clone the
pdfjs-express-electron-sample
repository:git clone https://github.com/pdfjs-express/pdfjs-express-electron-sample.git
Enter the directory and run
npm install
:cd pdfjs-express-electron-sample npm install
This will automatically download and extract the PDF.js Express WebViewer Package.
You are now ready to run the sample or use more PDF.js Express APIs.
Sample overview
After initial setup, the pdfjs-express-electron-sample
directory should be laid out like this:
pdfjs-express-electron-sample
├── LICENSE
├── package.json
├── README.md
├── node_modules
│ ├── ...
├── public
│ ├── index.html
│ ├── files
│ │ ├── ...
│ └── lib
│ ├── ...
└── src
├── App.js
└── main.js
Notable files and directories include:
File/Folder | Description |
---|---|
LICENSE | Lists the copyright and license information. |
package.json | Lists the manifest of the project and contains the author/version metadata. |
public | Contains the static assets such as the main HTML page index.html , the PDF.js Express WebViewer libraries and the sample PDF file |
src | Contains the .js files for the Electron project. |
In short, main.js
handles the OS checks and creates the main window for the application with a link to index.html
.
App.js
instantiates the WebViewer in the viewer
element outlined by index.html
. It is also where the WebViewer API calls are placed.
Run the sample
To run the sample, make sure you are in the
pdfjs-express-electron-sample
directory and executenpm start
You should see the application start up. It will load the WebViewer and display the PDF sample in
/public/files
:
If you run into issues with installing and/or running the application, please return and ensure you have the prerequisites installed.
Use more WebViewer APIs
To call more WebViewer APIs, open /src/App.js
in your favorite text editor and add the API calls to the callback for the WebViewer instantiation:
WebViewer({...}, wvElement
.then(instance => {
const { docViewer, annotManager } = instance;
// call methods from instance, docViewer and annotManager as needed.
// you can also access major namespaces from the instance as follows:
// const Tools = instance.Tools;
// const Annotations = instance.Annotations;
// See https://pdfjs.express/documentation/learn-more/overview for more info.
docViewer.on('documentLoaded', () => {
// call methods relating to the loaded document
});
});
For example, if you want to change the theme of the WebViewer to dark mode, you would add the following:
instance.setTheme('dark');
Execute npm start
again and the theme of the viewer will change:
Next step
Troubleshooting
Network Failure
More information about fixing the Network Failure
issue on WebViewer.