@dks9556/pdfjs-dist

2.0.946 • Public • Published

pdfjs-dist

This is a mirror of pdfjs-dist, bundled and exposed as an ES module

Install

npm install @bundled-es-modules/pdfjs-dist

Use

import pdfjs from "@bundled-es-modules/pdfjs-dist/build/pdf";
import viewer from "@bundled-es-modules/pdfjs-dist/web/pdf_viewer";

pdfjs.GlobalWorkerOptions.workerSrc =
  "@bundled-es-modules/pdfjs-dist/pdf.worker.js";

var url = "basicapi.pdf";
var loadingTask = pdfjs.getDocument(url);
//...

Important: Unlike in the original build, the pdfjs.GlobalWorkerOptions.workerSrc is mandatory.

Overview

Structure

├── build/
│   ├── pdf.js                    - display layer
│   └── pdf.worker.js             - core layer
└── web/
    ├── pdf_viewer.js             - top-level viewer import, containing all necessary setup
    ├── module.js                 - pdf-viewer module, transformed from UMD to ESM
    └── util.js                   - utility module for setup

Background

PDFJS is a library by Mozilla, created to facillitate client-side rendering of PDF documents.

Currently, the primary build for this project is provided as UMD-style modules at pdfjs/pdfjs-dist.

Support for es modules in the main project has been requested here (#10317)

Rollup configuration

pdf.js
  • Transform UMD to ESM
  • Resolve commonJS imports, except:
  • Ignore pdf.worker.js import. This is very important, as it's conditionally required and is very large in size.
  • Copy over all remaining files we wish to provide.

With pdf.worker.js ignored, pdfjs will expect a link to the file externally (see above)

pdf_viewer.js
  • Transform UMD to ESM
  • Resolve imports
  • Ignore pdf.js. This is important, as we don't want to serve duplicates of pdfjs.

With pdf.js ignored, the viewer will expect to find a global pdfjs. This is circumvented by temporarily adding pdfjs to the global scope, and removed immediately after the viewer acquires a reference.

Building

npm run build

Readme

Keywords

none

Package Sidebar

Install

npm i @dks9556/pdfjs-dist

Weekly Downloads

6

Version

2.0.946

License

Apache-2.0

Unpacked Size

6.51 MB

Total Files

18

Last publish

Collaborators

  • dks9556