Package Exports
- @submitty/pdf-annotate.js
- @submitty/pdf-annotate.js/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@submitty/pdf-annotate.js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@submitty/pdf-annotate.js
Annotation layer for PDF.js.
Combined fork of archived instructure/pdf-annotate.js and deleted DynamicEnvironmentSystems/pdf-annotate.js. Under active development for usage within Submitty.
To report issues for pdf-annotate.js, please file them under the Submitty/Submitty repository.
Objectives
- Provide a low level annotation layer for PDF.js.
- Optional high level UI for managing annotations.
- Agnostic of backend, just supply your own
StoreAdapterto fetch/store data. - Prescribe annotation format.
Installation
npm install @submitty/pdf-annotate.jsExample
import pdfjsLib from 'pdfjs-dist/build/pdf';
import PDFJSAnnotate from 'pdfjs-annotate';
const { UI } = PDFJSAnnotate;
const VIEWER = document.getElementById('viewer');
const RENDER_OPTIONS = {
documentId: 'MyPDF.pdf',
pdfDocument: null,
scale: 1,
rotate: 0
};
pdfjsLib.GlobalWorkerOptions.workerSrc = 'pdf.worker.js';
PDFJSAnnotate.setStoreAdapter(new PDFJSAnnotate.LocalStoreAdapter());
pdfjsLib.getDocument(RENDER_OPTIONS.documentId).promise.then((pdf) => {
RENDER_OPTIONS.pdfDocument = pdf;
VIEWER.appendChild(UI.createPage(1));
UI.renderPage(1, RENDER_OPTIONS);
});See /web for an example web client for annotating PDFs.
Documentation
Developing
# clone the repo
$ git clone https://github.com/Submitty/pdf-annotate.js.git
$ cd pdf-annotate.js
# intall dependencies
$ npm install
# start example server
$ npm start
$ open http://127.0.0.1:8080
# run tests
$ npm test
# lint the code
$ npm run lint