The PDF.js Express Web Viewer UI provides a great developer experience for anyone interested in the source code. You can make adjustments of your own, run it to test, and build it to deploy.
Forking and linking
A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project. To fork and sync with PDFTron's webviewer-ui repo, follow these steps:
- Go to https://github.com/PDFTron/webviewer-ui.
- In the top-right corner of the page, click Fork.
- Open terminal and navigate to your destination folder.
- Run the following:
git clone https://github.com/YOUR-USERNAME/webviewer-ui cd webviewer-ui git remote add upstream https://github.com/PDFTron/webviewer-ui
See Forking a repo for more information.
The default branch of the repo is the latest stable WebViewer version. For example, if the default branch is
7.1, then it means the latest official WebViewer version is
You should switch the branch to be the WebViewer version you are currently using for your application. For example, if you are using WebViewer
7.0 then you should switch to the
7.0 branch and modify the code there. If you are using the legacy UI, then you need to switch to
Code in the
master branch is considered to be experimental and is not safe to be used in production. Generally we don't recommend that you modify the code in the
To run the project,
- Go to
To build the source files into
npm run build
Work with the public repo in Github
For a better developer experience, we have open sourced the project in Github. It allows you to keep track of your changes better or sync with future versions easier.
Sync the fork
When you want to merge any changes from the original PDFTron's webviewer-ui repo, follow these steps:
- Open terminal and navigate to
- Run the following:
git fetch upstream master git checkout master git merge upstream/master
See Syncing a fork for more information.
Make pull requests
If you want your changes to be implemented into PDFTron's webviewer-ui so that they are available in future releases, see Creating a pull request.