PDF.js Express Plusplay_arrow

Professional PDF.js Viewing & Annotations - Try for free

side menu

Get Started

play_arrow

PDF.js Express Plus

play_arrow

Learn more

play_arrow

Common use cases

play_arrow

Open a document

play_arrow

Save a document

play_arrow

Viewer

play_arrow

UI Customization

play_arrow

Annotations

play_arrow

Collaboration

play_arrow

Forms

play_arrow

Signature

play_arrow

Searching

play_arrow

Measurement

play_arrow

Compare

play_arrow

Advanced Capabilities

play_arrow

PDF.js Express REST API

play_arrow

Migration Guides

play_arrow

Integrating PDF.js Express Viewer with Svelte

This guide will help you integrate PDF.js Express Viewer into Svelte applications on the browser. It will help you clone the Svelte sample repository, walk through the project structure, and show you how to call other WebViewer API.

Get the Svelte sample source code here

Prerequisites

Node.js is not required for PDF.js Express Viewer
PDF.js Express Viewer does not require Node, npm, or node_modules. It is only recommended to run the samples.
Free license key required.

To use PDF.js Express Viewer you do need a free license key. Please get your free Viewer key here if you do not have one.

Initial setup

  1. Clone the Svelte sample by executing

    git clone https://github.com/pdfjs-express/pdfjs-express-viewer-svelte-sample.git
    
  2. Once cloned, navigate into the pdfjs-express-viewer-svelte-sample folder and install all the required dependencies by executing

    npm install
    

npm will also download the PDF.js Express Viewer and extract it to /public/lib.

You are now ready to run the sample or use more WebViewer APIs.

Sample overview

After initial setup, your pdfjs-express-viewer-svelte-sample directory should be laid out like this:

pdfjs-express-viewer-svelte-sample
├── LICENSE
├── node_modules
│   └── ...
├── package.json
├── package-lock.json
├── public
│   ├── bundle.css
│   ├── bundle.css.map
│   ├── bundle.js
│   ├── bundle.js.map
│   ├── favicon.png
│   ├── global.css
│   ├── index.html
│   └── lib
├── README.md
├── rollup.config.js
└── src
    ├── App.svelte
    ├── main.js
    └── WebViewer.svelte

Notable files and directories include:

File/Folder NameDescription
LICENSELists the PDF.js Express copyright and license information.
App.svelteContains the main application code which instantiates a WebViewer and loads a document
main.jsAdds the application defined in App.svelte to the body element of /public/index.html
WebViewer.svelteContains the definition for the WebViewer component
bundle.jsJavaScript bundle that is compiled by Svelte
libContains the extracted PDF.js Express SDK

Run the sample

To run the sample, navigate to your /pdfjs-express-viewer-svelte-sample directory and execute

npm run dev

Then navigate to http://localhost:5000. You should see WebViewer start up and load the sample PDF. Note it will change in real time if you edit any of the source files.

sample

Use more WebViewer APIs

To call more WebViewer API's, navigate to /src/WebViewer.svelte and add the API calls in the callback of the WebViewer constructor(you may need to make one if it is not provided).

const ele = document.getElementById('viewer');
window.WebViewer({
  path: '/lib'
}, ele)
  .then(instance => {
    // In this callback WebViewer will be initialized, so you can call WebViewer API here.
    instance.UI.setTheme('dark');
  });
const ele = document.getElementById('viewer');
window.WebViewer({
  path: '/lib'
}, ele)
  .then(instance => {
    // In this callback WebViewer will be initialized, so you can call WebViewer API here.
    instance.UI.setTheme('dark');
  });

If your Svelte application is already running, you should see the theme change right away. Otherwise execute npm run dev again, then navigate to http://localhost:5000 and you should see that the theme has changed.

sample-dark

Next step

GuidesSamplesAPI docs