Merge pull request #15183 from Snuffleupagus/rm-svgviewer-example
Remove the `svgviewer` example
This commit is contained in:
commit
e2f6ec83d6
@ -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.
|
|
@ -1,51 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<!--
|
|
||||||
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.
|
|
||||||
-->
|
|
||||||
<html dir="ltr" mozdisallowselectionprint>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
||||||
<meta name="google" content="notranslate">
|
|
||||||
<title>PDF.js SVG viewer using built components</title>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
background-color: #808080;
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
#viewerContainer {
|
|
||||||
overflow: auto;
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="../../node_modules/pdfjs-dist/web/pdf_viewer.css">
|
|
||||||
|
|
||||||
<script src="../../node_modules/pdfjs-dist/build/pdf.js"></script>
|
|
||||||
<script src="../../node_modules/pdfjs-dist/web/pdf_viewer.js"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body tabindex="1">
|
|
||||||
<div id="viewerContainer">
|
|
||||||
<div id="viewer" class="pdfViewer"></div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script src="viewer.js"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -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);
|
|
||||||
});
|
|
@ -127,7 +127,6 @@ function isValidAnnotationEditorMode(mode) {
|
|||||||
* mainly for annotation icons. Include trailing slash.
|
* mainly for annotation icons. Include trailing slash.
|
||||||
* @property {boolean} [enablePrintAutoRotate] - Enables automatic rotation of
|
* @property {boolean} [enablePrintAutoRotate] - Enables automatic rotation of
|
||||||
* landscape pages upon printing. The default is `false`.
|
* 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
|
* @property {boolean} [useOnlyCssZoom] - Enables CSS only zooming. The default
|
||||||
* value is `false`.
|
* value is `false`.
|
||||||
* @property {number} [maxCanvasPixels] - The maximum supported canvas size in
|
* @property {number} [maxCanvasPixels] - The maximum supported canvas size in
|
||||||
@ -285,7 +284,12 @@ class BaseViewer {
|
|||||||
options.annotationEditorMode ?? ANNOTATION_EDITOR_MODE;
|
options.annotationEditorMode ?? ANNOTATION_EDITOR_MODE;
|
||||||
this.imageResourcesPath = options.imageResourcesPath || "";
|
this.imageResourcesPath = options.imageResourcesPath || "";
|
||||||
this.enablePrintAutoRotate = options.enablePrintAutoRotate || false;
|
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.useOnlyCssZoom = options.useOnlyCssZoom || false;
|
||||||
this.maxCanvasPixels = options.maxCanvasPixels;
|
this.maxCanvasPixels = options.maxCanvasPixels;
|
||||||
this.l10n = options.l10n || NullL10n;
|
this.l10n = options.l10n || NullL10n;
|
||||||
@ -778,7 +782,11 @@ class BaseViewer {
|
|||||||
textHighlighterFactory: this,
|
textHighlighterFactory: this,
|
||||||
structTreeLayerFactory: this,
|
structTreeLayerFactory: this,
|
||||||
imageResourcesPath: this.imageResourcesPath,
|
imageResourcesPath: this.imageResourcesPath,
|
||||||
renderer: this.renderer,
|
renderer:
|
||||||
|
typeof PDFJSDev === "undefined" ||
|
||||||
|
PDFJSDev.test("!PRODUCTION || GENERIC")
|
||||||
|
? this.renderer
|
||||||
|
: null,
|
||||||
useOnlyCssZoom: this.useOnlyCssZoom,
|
useOnlyCssZoom: this.useOnlyCssZoom,
|
||||||
maxCanvasPixels: this.maxCanvasPixels,
|
maxCanvasPixels: this.maxCanvasPixels,
|
||||||
pageColors: this.pageColors,
|
pageColors: this.pageColors,
|
||||||
|
@ -80,7 +80,6 @@ import { NullL10n } from "./l10n_utils.js";
|
|||||||
* @property {Object} [textHighlighterFactory]
|
* @property {Object} [textHighlighterFactory]
|
||||||
* @property {string} [imageResourcesPath] - Path for image resources, mainly
|
* @property {string} [imageResourcesPath] - Path for image resources, mainly
|
||||||
* for annotation icons. Include trailing slash.
|
* 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
|
* @property {boolean} [useOnlyCssZoom] - Enables CSS only zooming. The default
|
||||||
* value is `false`.
|
* value is `false`.
|
||||||
* @property {number} [maxCanvasPixels] - The maximum supported canvas size in
|
* @property {number} [maxCanvasPixels] - The maximum supported canvas size in
|
||||||
@ -139,7 +138,12 @@ class PDFPageView {
|
|||||||
this.eventBus
|
this.eventBus
|
||||||
);
|
);
|
||||||
this.structTreeLayerFactory = options.structTreeLayerFactory;
|
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.l10n = options.l10n || NullL10n;
|
||||||
|
|
||||||
this.paintTask = null;
|
this.paintTask = null;
|
||||||
|
@ -48,10 +48,13 @@ const SidebarView = {
|
|||||||
LAYERS: 4,
|
LAYERS: 4,
|
||||||
};
|
};
|
||||||
|
|
||||||
const RendererType = {
|
const RendererType =
|
||||||
CANVAS: "canvas",
|
typeof PDFJSDev === "undefined" || PDFJSDev.test("!PRODUCTION || GENERIC")
|
||||||
SVG: "svg",
|
? {
|
||||||
};
|
CANVAS: "canvas",
|
||||||
|
SVG: "svg",
|
||||||
|
}
|
||||||
|
: null;
|
||||||
|
|
||||||
const TextLayerMode = {
|
const TextLayerMode = {
|
||||||
DISABLE: 0,
|
DISABLE: 0,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user