Download Button is not working

We are using PDF.js Express (8.2.0) and we have enabled the download feature using instance.enableFeatures([instance.Feature.Download]);.

When attempting to download a shown PDF, the viewer just spins and never outputs the file to the browser.
The console of the browser shows the following error:
Uncaught (in promise) Error: exportAnnotations: Annotations are not available in the free viewer build of PDF.js Express. For full annotation support, please use the full version of PDF.js Express.
at Object.get (webviewer-core.min.js:400:106)
at Object.exportAnnotations (webviewer-ui.min.js:68:110709)
at webviewer-ui.min.js:68:285202
at s (webviewer-ui.min.js:26:126874)
at Generator._invoke (webviewer-ui.min.js:26:126627)
at (webviewer-ui.min.js:26:127237)
at Qd (webviewer-ui.min.js:68:284271)
at i (webviewer-ui.min.js:68:286385)
at webviewer-ui.min.js:68:286446
at new Promise ()

How to enable the download feature?

Hello, I’m Ron, an automated tech support bot :robot:

While you wait for one of our customer support representatives to get back to you, please check out some of these documentation pages:


Hey there,

PDF.js Express Viewer does not currently support downloading the document, however this should be pretty easy to implement yourself. We like using this package here!


Hi there - we hit the same problem and found this article. Your own website has a tick for PDF.JS Express beside Hide/Show Download/Print and other tools. PDF.js License Pricing for Commercial Viewer | PDF.js Express

So its super frustrating to learn that this feature doesn’t work as advertised after spending time on development to put it in our product. That’s kind of a key feature and painful to build separately.

Can you please clarify that your website is inaccurate/misleading OR that this feature is actually supported (and if so, how)?


Hey there,

That item on the feature chart does not say we can print, it says you can hide/show tools via API - however I do understand the confusion here (using “print” is probably a bad example).

That being said, I’ll make some changes that will allow us to support printing. I’ll have it ready in the next release.


Logan - its downloading, not printing. The printing function already works. This thread is about the download function. In that table, there is no other row about downloading to indicate express viewer doesn’t download. The only row about downloading is that row.

I think its pretty fair to therefore assume that if I can ‘hide/show’ the ‘download’ button, that the viewer supports downloading. Why would I want to show a tool which doesn’t work?

Your documentation doesn’t explicitly state downloading is not supported by the viewer. Its only when you finally get to that point and realise that the download function also merges annotations, which aren’t supported by the viewer, that you realise the viewer cant download at all. Its super frustrating.

Hey there,

Sorry - I meant downloading, not printing. I already have a fix in code review so we’ll have this out soon.

The reason you are able to enable features that we don’t support is quite complex, but it has to do with our code infrastructure and how we share code and APIs with other similar products (PDF.js Express Plus and PDFTron WebViewer). I understand this can be frustrating, but that is why we allow an unlimited free trial to try out the features you need (also keep in mind the product is free). We also provide super easy upgrade paths to enable features that you need (the APIs between all products is the exact same).

Keep an eye out for the next release in #announcements.

I will be closing this ticket as the issue will be resolved in the next release.