diff --git a/examples/svgviewer/README.md b/examples/svgviewer/README.md deleted file mode 100644 index 089d3050bf775..0000000000000 --- a/examples/svgviewer/README.md +++ /dev/null @@ -1,8 +0,0 @@ -## PDF.js using SVG - -This is a project for implementing alternate backend for PDF.js using Scalable Vector Graphics. This is still a WIP. -Take a look at [proposal](https://docs.google.com/document/d/1k4nPx1RrHbxXi94kSdvW5ay8KMkjwLmBEiCNupyzlwk/pub) for this project. - -## Getting started - -Take a look at src/display/svg.js to see the SVG rendering code. diff --git a/examples/svgviewer/index.html b/examples/svgviewer/index.html deleted file mode 100644 index 9c538f14435f2..0000000000000 --- a/examples/svgviewer/index.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - PDF.js SVG viewer using built components - - - - - - - - - - -
-
-
- - - - diff --git a/examples/svgviewer/viewer.js b/examples/svgviewer/viewer.js deleted file mode 100644 index 3fb1307b59166..0000000000000 --- a/examples/svgviewer/viewer.js +++ /dev/null @@ -1,70 +0,0 @@ -/* 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.PDFViewer) { - // 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"; - -const container = document.getElementById("viewerContainer"); - -const eventBus = new pdfjsViewer.EventBus(); - -// (Optionally) enable hyperlinks within PDF files. -const pdfLinkService = new pdfjsViewer.PDFLinkService({ - eventBus, -}); - -const pdfViewer = new pdfjsViewer.PDFViewer({ - container, - eventBus, - linkService: pdfLinkService, - renderer: "svg", - textLayerMode: 0, -}); -pdfLinkService.setViewer(pdfViewer); - -eventBus.on("pagesinit", function () { - // We can use pdfViewer now, e.g. let's change default scale. - pdfViewer.currentScaleValue = "page-width"; -}); - -// Loading document. -const loadingTask = pdfjsLib.getDocument({ - url: DEFAULT_URL, - cMapUrl: CMAP_URL, - cMapPacked: CMAP_PACKED, -}); -loadingTask.promise.then(function (pdfDocument) { - // Document loaded, specifying document for the viewer and - // the (optional) linkService. - pdfViewer.setDocument(pdfDocument); - - pdfLinkService.setDocument(pdfDocument, null); -}); diff --git a/web/base_viewer.js b/web/base_viewer.js index c3ae98a80403d..0ecb510abdc59 100644 --- a/web/base_viewer.js +++ b/web/base_viewer.js @@ -127,7 +127,6 @@ function isValidAnnotationEditorMode(mode) { * mainly for annotation icons. Include trailing slash. * @property {boolean} [enablePrintAutoRotate] - Enables automatic rotation of * landscape pages upon printing. The default is `false`. - * @property {string} renderer - 'canvas' or 'svg'. The default is 'canvas'. * @property {boolean} [useOnlyCssZoom] - Enables CSS only zooming. The default * value is `false`. * @property {number} [maxCanvasPixels] - The maximum supported canvas size in @@ -285,7 +284,12 @@ class BaseViewer { options.annotationEditorMode ?? ANNOTATION_EDITOR_MODE; this.imageResourcesPath = options.imageResourcesPath || ""; this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; - this.renderer = options.renderer || RendererType.CANVAS; + if ( + typeof PDFJSDev === "undefined" || + PDFJSDev.test("!PRODUCTION || GENERIC") + ) { + this.renderer = options.renderer || RendererType.CANVAS; + } this.useOnlyCssZoom = options.useOnlyCssZoom || false; this.maxCanvasPixels = options.maxCanvasPixels; this.l10n = options.l10n || NullL10n; @@ -778,7 +782,11 @@ class BaseViewer { textHighlighterFactory: this, structTreeLayerFactory: this, imageResourcesPath: this.imageResourcesPath, - renderer: this.renderer, + renderer: + typeof PDFJSDev === "undefined" || + PDFJSDev.test("!PRODUCTION || GENERIC") + ? this.renderer + : null, useOnlyCssZoom: this.useOnlyCssZoom, maxCanvasPixels: this.maxCanvasPixels, pageColors: this.pageColors, diff --git a/web/pdf_page_view.js b/web/pdf_page_view.js index 82d0bbf9ea5a1..bc77234fca2da 100644 --- a/web/pdf_page_view.js +++ b/web/pdf_page_view.js @@ -80,7 +80,6 @@ import { NullL10n } from "./l10n_utils.js"; * @property {Object} [textHighlighterFactory] * @property {string} [imageResourcesPath] - Path for image resources, mainly * for annotation icons. Include trailing slash. - * @property {string} renderer - 'canvas' or 'svg'. The default is 'canvas'. * @property {boolean} [useOnlyCssZoom] - Enables CSS only zooming. The default * value is `false`. * @property {number} [maxCanvasPixels] - The maximum supported canvas size in @@ -139,7 +138,12 @@ class PDFPageView { this.eventBus ); this.structTreeLayerFactory = options.structTreeLayerFactory; - this.renderer = options.renderer || RendererType.CANVAS; + if ( + typeof PDFJSDev === "undefined" || + PDFJSDev.test("!PRODUCTION || GENERIC") + ) { + this.renderer = options.renderer || RendererType.CANVAS; + } this.l10n = options.l10n || NullL10n; this.paintTask = null; diff --git a/web/ui_utils.js b/web/ui_utils.js index 02dc8f24f8939..d9673a4dddb3d 100644 --- a/web/ui_utils.js +++ b/web/ui_utils.js @@ -48,10 +48,13 @@ const SidebarView = { LAYERS: 4, }; -const RendererType = { - CANVAS: "canvas", - SVG: "svg", -}; +const RendererType = + typeof PDFJSDev === "undefined" || PDFJSDev.test("!PRODUCTION || GENERIC") + ? { + CANVAS: "canvas", + SVG: "svg", + } + : null; const TextLayerMode = { DISABLE: 0,