123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- /* Copyright 2014 Mozilla Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- "use strict";
- if (!pdfjsLib.getDocument || !pdfjsViewer.PDFSinglePageViewer) {
- // eslint-disable-next-line no-alert
- alert("Please build the pdfjs-dist library using\n `gulp dist-install`");
- }
- // The workerSrc property shall be specified.
- //
- pdfjsLib.GlobalWorkerOptions.workerSrc =
- "../../node_modules/pdfjs-dist/build/pdf.worker.js";
- // Some PDFs need external cmaps.
- //
- const CMAP_URL = "../../node_modules/pdfjs-dist/cmaps/";
- const CMAP_PACKED = true;
- const DEFAULT_URL = "../../web/compressed.tracemonkey-pldi-09.pdf";
- // To test the AcroForm and/or scripting functionality, try e.g. this file:
- // "../../test/pdfs/160F-2019.pdf"
- const ENABLE_XFA = true;
- const SEARCH_FOR = ""; // try "Mozilla";
- const SANDBOX_BUNDLE_SRC = "../../node_modules/pdfjs-dist/build/pdf.sandbox.js";
- const container = document.getElementById("viewerContainer");
- const eventBus = new pdfjsViewer.EventBus();
- // (Optionally) enable hyperlinks within PDF files.
- const pdfLinkService = new pdfjsViewer.PDFLinkService({
- eventBus,
- });
- // (Optionally) enable find controller.
- const pdfFindController = new pdfjsViewer.PDFFindController({
- eventBus,
- linkService: pdfLinkService,
- });
- // (Optionally) enable scripting support.
- const pdfScriptingManager = new pdfjsViewer.PDFScriptingManager({
- eventBus,
- sandboxBundleSrc: SANDBOX_BUNDLE_SRC,
- });
- const pdfSinglePageViewer = new pdfjsViewer.PDFSinglePageViewer({
- container,
- eventBus,
- linkService: pdfLinkService,
- findController: pdfFindController,
- scriptingManager: pdfScriptingManager,
- });
- pdfLinkService.setViewer(pdfSinglePageViewer);
- pdfScriptingManager.setViewer(pdfSinglePageViewer);
- eventBus.on("pagesinit", function () {
- // We can use pdfSinglePageViewer now, e.g. let's change default scale.
- pdfSinglePageViewer.currentScaleValue = "page-width";
- // We can try searching for things.
- if (SEARCH_FOR) {
- eventBus.dispatch("find", { type: "", query: SEARCH_FOR });
- }
- });
- // Loading document.
- const loadingTask = pdfjsLib.getDocument({
- url: DEFAULT_URL,
- cMapUrl: CMAP_URL,
- cMapPacked: CMAP_PACKED,
- enableXfa: ENABLE_XFA,
- });
- loadingTask.promise.then(function (pdfDocument) {
- // Document loaded, specifying document for the viewer and
- // the (optional) linkService.
- pdfSinglePageViewer.setDocument(pdfDocument);
- pdfLinkService.setDocument(pdfDocument, null);
- });
|