1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 | 'use strict';
|
23 |
|
24 | Object.defineProperty(exports, "__esModule", {
|
25 | value: true
|
26 | });
|
27 | exports.PDFPageView = undefined;
|
28 |
|
29 | var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
|
30 |
|
31 | var _ui_utils = require('./ui_utils');
|
32 |
|
33 | var _pdf = require('../pdf');
|
34 |
|
35 | var _dom_events = require('./dom_events');
|
36 |
|
37 | var _pdf_rendering_queue = require('./pdf_rendering_queue');
|
38 |
|
39 | var _viewer_compatibility = require('./viewer_compatibility');
|
40 |
|
41 | function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
42 |
|
43 | var MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216;
|
44 |
|
45 | var PDFPageView = function () {
|
46 | function PDFPageView(options) {
|
47 | _classCallCheck(this, PDFPageView);
|
48 |
|
49 | var container = options.container;
|
50 | var defaultViewport = options.defaultViewport;
|
51 | this.id = options.id;
|
52 | this.renderingId = 'page' + this.id;
|
53 | this.pdfPage = null;
|
54 | this.pageLabel = null;
|
55 | this.rotation = 0;
|
56 | this.scale = options.scale || _ui_utils.DEFAULT_SCALE;
|
57 | this.viewport = defaultViewport;
|
58 | this.pdfPageRotate = defaultViewport.rotation;
|
59 | this.hasRestrictedScaling = false;
|
60 | this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE;
|
61 | this.imageResourcesPath = options.imageResourcesPath || '';
|
62 | this.renderInteractiveForms = options.renderInteractiveForms || false;
|
63 | this.useOnlyCssZoom = options.useOnlyCssZoom || false;
|
64 | this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS;
|
65 | this.eventBus = options.eventBus || (0, _dom_events.getGlobalEventBus)();
|
66 | this.renderingQueue = options.renderingQueue;
|
67 | this.textLayerFactory = options.textLayerFactory;
|
68 | this.annotationLayerFactory = options.annotationLayerFactory;
|
69 | this.renderer = options.renderer || _ui_utils.RendererType.CANVAS;
|
70 | this.enableWebGL = options.enableWebGL || false;
|
71 | this.l10n = options.l10n || _ui_utils.NullL10n;
|
72 | this.paintTask = null;
|
73 | this.paintedViewportMap = new WeakMap();
|
74 | this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
|
75 | this.resume = null;
|
76 | this.error = null;
|
77 | this.onBeforeDraw = null;
|
78 | this.onAfterDraw = null;
|
79 | this.annotationLayer = null;
|
80 | this.textLayer = null;
|
81 | this.zoomLayer = null;
|
82 | var div = document.createElement('div');
|
83 | div.className = 'page';
|
84 | div.style.width = Math.floor(this.viewport.width) + 'px';
|
85 | div.style.height = Math.floor(this.viewport.height) + 'px';
|
86 | div.setAttribute('data-page-number', this.id);
|
87 | this.div = div;
|
88 | container.appendChild(div);
|
89 | }
|
90 |
|
91 | _createClass(PDFPageView, [{
|
92 | key: 'setPdfPage',
|
93 | value: function setPdfPage(pdfPage) {
|
94 | this.pdfPage = pdfPage;
|
95 | this.pdfPageRotate = pdfPage.rotate;
|
96 | var totalRotation = (this.rotation + this.pdfPageRotate) % 360;
|
97 | this.viewport = pdfPage.getViewport(this.scale * _ui_utils.CSS_UNITS, totalRotation);
|
98 | this.stats = pdfPage.stats;
|
99 | this.reset();
|
100 | }
|
101 | }, {
|
102 | key: 'destroy',
|
103 | value: function destroy() {
|
104 | this.reset();
|
105 | if (this.pdfPage) {
|
106 | this.pdfPage.cleanup();
|
107 | }
|
108 | }
|
109 | }, {
|
110 | key: '_resetZoomLayer',
|
111 | value: function _resetZoomLayer() {
|
112 | var removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
113 |
|
114 | if (!this.zoomLayer) {
|
115 | return;
|
116 | }
|
117 | var zoomLayerCanvas = this.zoomLayer.firstChild;
|
118 | this.paintedViewportMap.delete(zoomLayerCanvas);
|
119 | zoomLayerCanvas.width = 0;
|
120 | zoomLayerCanvas.height = 0;
|
121 | if (removeFromDOM) {
|
122 | this.zoomLayer.remove();
|
123 | }
|
124 | this.zoomLayer = null;
|
125 | }
|
126 | }, {
|
127 | key: 'reset',
|
128 | value: function reset() {
|
129 | var keepZoomLayer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
130 | var keepAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
131 |
|
132 | this.cancelRendering(keepAnnotations);
|
133 | var div = this.div;
|
134 | div.style.width = Math.floor(this.viewport.width) + 'px';
|
135 | div.style.height = Math.floor(this.viewport.height) + 'px';
|
136 | var childNodes = div.childNodes;
|
137 | var currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null;
|
138 | var currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null;
|
139 | for (var i = childNodes.length - 1; i >= 0; i--) {
|
140 | var node = childNodes[i];
|
141 | if (currentZoomLayerNode === node || currentAnnotationNode === node) {
|
142 | continue;
|
143 | }
|
144 | div.removeChild(node);
|
145 | }
|
146 | div.removeAttribute('data-loaded');
|
147 | if (currentAnnotationNode) {
|
148 | this.annotationLayer.hide();
|
149 | } else if (this.annotationLayer) {
|
150 | this.annotationLayer.cancel();
|
151 | this.annotationLayer = null;
|
152 | }
|
153 | if (!currentZoomLayerNode) {
|
154 | if (this.canvas) {
|
155 | this.paintedViewportMap.delete(this.canvas);
|
156 | this.canvas.width = 0;
|
157 | this.canvas.height = 0;
|
158 | delete this.canvas;
|
159 | }
|
160 | this._resetZoomLayer();
|
161 | }
|
162 | if (this.svg) {
|
163 | this.paintedViewportMap.delete(this.svg);
|
164 | delete this.svg;
|
165 | }
|
166 | this.loadingIconDiv = document.createElement('div');
|
167 | this.loadingIconDiv.className = 'loadingIcon';
|
168 | div.appendChild(this.loadingIconDiv);
|
169 | }
|
170 | }, {
|
171 | key: 'update',
|
172 | value: function update(scale, rotation) {
|
173 | this.scale = scale || this.scale;
|
174 | if (typeof rotation !== 'undefined') {
|
175 | this.rotation = rotation;
|
176 | }
|
177 | var totalRotation = (this.rotation + this.pdfPageRotate) % 360;
|
178 | this.viewport = this.viewport.clone({
|
179 | scale: this.scale * _ui_utils.CSS_UNITS,
|
180 | rotation: totalRotation
|
181 | });
|
182 | if (this.svg) {
|
183 | this.cssTransform(this.svg, true);
|
184 | this.eventBus.dispatch('pagerendered', {
|
185 | source: this,
|
186 | pageNumber: this.id,
|
187 | cssTransform: true
|
188 | });
|
189 | return;
|
190 | }
|
191 | var isScalingRestricted = false;
|
192 | if (this.canvas && this.maxCanvasPixels > 0) {
|
193 | var outputScale = this.outputScale;
|
194 | if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) {
|
195 | isScalingRestricted = true;
|
196 | }
|
197 | }
|
198 | if (this.canvas) {
|
199 | if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) {
|
200 | this.cssTransform(this.canvas, true);
|
201 | this.eventBus.dispatch('pagerendered', {
|
202 | source: this,
|
203 | pageNumber: this.id,
|
204 | cssTransform: true
|
205 | });
|
206 | return;
|
207 | }
|
208 | if (!this.zoomLayer && !this.canvas.hasAttribute('hidden')) {
|
209 | this.zoomLayer = this.canvas.parentNode;
|
210 | this.zoomLayer.style.position = 'absolute';
|
211 | }
|
212 | }
|
213 | if (this.zoomLayer) {
|
214 | this.cssTransform(this.zoomLayer.firstChild);
|
215 | }
|
216 | this.reset(true, true);
|
217 | }
|
218 | }, {
|
219 | key: 'cancelRendering',
|
220 | value: function cancelRendering() {
|
221 | var keepAnnotations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
222 |
|
223 | if (this.paintTask) {
|
224 | this.paintTask.cancel();
|
225 | this.paintTask = null;
|
226 | }
|
227 | this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL;
|
228 | this.resume = null;
|
229 | if (this.textLayer) {
|
230 | this.textLayer.cancel();
|
231 | this.textLayer = null;
|
232 | }
|
233 | if (!keepAnnotations && this.annotationLayer) {
|
234 | this.annotationLayer.cancel();
|
235 | this.annotationLayer = null;
|
236 | }
|
237 | }
|
238 | }, {
|
239 | key: 'cssTransform',
|
240 | value: function cssTransform(target) {
|
241 | var redrawAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
242 |
|
243 | var width = this.viewport.width;
|
244 | var height = this.viewport.height;
|
245 | var div = this.div;
|
246 | target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + 'px';
|
247 | target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + 'px';
|
248 | var relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation;
|
249 | var absRotation = Math.abs(relativeRotation);
|
250 | var scaleX = 1,
|
251 | scaleY = 1;
|
252 | if (absRotation === 90 || absRotation === 270) {
|
253 | scaleX = height / width;
|
254 | scaleY = width / height;
|
255 | }
|
256 | var cssTransform = 'rotate(' + relativeRotation + 'deg) ' + 'scale(' + scaleX + ',' + scaleY + ')';
|
257 | target.style.transform = cssTransform;
|
258 | if (this.textLayer) {
|
259 | var textLayerViewport = this.textLayer.viewport;
|
260 | var textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation;
|
261 | var textAbsRotation = Math.abs(textRelativeRotation);
|
262 | var scale = width / textLayerViewport.width;
|
263 | if (textAbsRotation === 90 || textAbsRotation === 270) {
|
264 | scale = width / textLayerViewport.height;
|
265 | }
|
266 | var textLayerDiv = this.textLayer.textLayerDiv;
|
267 | var transX = void 0,
|
268 | transY = void 0;
|
269 | switch (textAbsRotation) {
|
270 | case 0:
|
271 | transX = transY = 0;
|
272 | break;
|
273 | case 90:
|
274 | transX = 0;
|
275 | transY = '-' + textLayerDiv.style.height;
|
276 | break;
|
277 | case 180:
|
278 | transX = '-' + textLayerDiv.style.width;
|
279 | transY = '-' + textLayerDiv.style.height;
|
280 | break;
|
281 | case 270:
|
282 | transX = '-' + textLayerDiv.style.width;
|
283 | transY = 0;
|
284 | break;
|
285 | default:
|
286 | console.error('Bad rotation value.');
|
287 | break;
|
288 | }
|
289 | textLayerDiv.style.transform = 'rotate(' + textAbsRotation + 'deg) ' + 'scale(' + scale + ', ' + scale + ') ' + 'translate(' + transX + ', ' + transY + ')';
|
290 | textLayerDiv.style.transformOrigin = '0% 0%';
|
291 | }
|
292 | if (redrawAnnotations && this.annotationLayer) {
|
293 | this.annotationLayer.render(this.viewport, 'display');
|
294 | }
|
295 | }
|
296 | }, {
|
297 | key: 'getPagePoint',
|
298 | value: function getPagePoint(x, y) {
|
299 | return this.viewport.convertToPdfPoint(x, y);
|
300 | }
|
301 | }, {
|
302 | key: 'draw',
|
303 | value: function draw() {
|
304 | var _this = this;
|
305 |
|
306 | if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) {
|
307 | console.error('Must be in new state before drawing');
|
308 | this.reset();
|
309 | }
|
310 | if (!this.pdfPage) {
|
311 | this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
|
312 | return Promise.reject(new Error('Page is not loaded'));
|
313 | }
|
314 | this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;
|
315 | var pdfPage = this.pdfPage;
|
316 | var div = this.div;
|
317 | var canvasWrapper = document.createElement('div');
|
318 | canvasWrapper.style.width = div.style.width;
|
319 | canvasWrapper.style.height = div.style.height;
|
320 | canvasWrapper.classList.add('canvasWrapper');
|
321 | if (this.annotationLayer && this.annotationLayer.div) {
|
322 | div.insertBefore(canvasWrapper, this.annotationLayer.div);
|
323 | } else {
|
324 | div.appendChild(canvasWrapper);
|
325 | }
|
326 | var textLayer = null;
|
327 | if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) {
|
328 | var textLayerDiv = document.createElement('div');
|
329 | textLayerDiv.className = 'textLayer';
|
330 | textLayerDiv.style.width = canvasWrapper.style.width;
|
331 | textLayerDiv.style.height = canvasWrapper.style.height;
|
332 | if (this.annotationLayer && this.annotationLayer.div) {
|
333 | div.insertBefore(textLayerDiv, this.annotationLayer.div);
|
334 | } else {
|
335 | div.appendChild(textLayerDiv);
|
336 | }
|
337 | textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE);
|
338 | }
|
339 | this.textLayer = textLayer;
|
340 | var renderContinueCallback = null;
|
341 | if (this.renderingQueue) {
|
342 | renderContinueCallback = function renderContinueCallback(cont) {
|
343 | if (!_this.renderingQueue.isHighestPriority(_this)) {
|
344 | _this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED;
|
345 | _this.resume = function () {
|
346 | _this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING;
|
347 | cont();
|
348 | };
|
349 | return;
|
350 | }
|
351 | cont();
|
352 | };
|
353 | }
|
354 | var finishPaintTask = function finishPaintTask(error) {
|
355 | if (paintTask === _this.paintTask) {
|
356 | _this.paintTask = null;
|
357 | }
|
358 | if (error instanceof _pdf.RenderingCancelledException) {
|
359 | _this.error = null;
|
360 | return Promise.resolve(undefined);
|
361 | }
|
362 | _this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
|
363 | if (_this.loadingIconDiv) {
|
364 | div.removeChild(_this.loadingIconDiv);
|
365 | delete _this.loadingIconDiv;
|
366 | }
|
367 | _this._resetZoomLayer(true);
|
368 | _this.error = error;
|
369 | _this.stats = pdfPage.stats;
|
370 | if (_this.onAfterDraw) {
|
371 | _this.onAfterDraw();
|
372 | }
|
373 | _this.eventBus.dispatch('pagerendered', {
|
374 | source: _this,
|
375 | pageNumber: _this.id,
|
376 | cssTransform: false
|
377 | });
|
378 | if (error) {
|
379 | return Promise.reject(error);
|
380 | }
|
381 | return Promise.resolve(undefined);
|
382 | };
|
383 | var paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper);
|
384 | paintTask.onRenderContinue = renderContinueCallback;
|
385 | this.paintTask = paintTask;
|
386 | var resultPromise = paintTask.promise.then(function () {
|
387 | return finishPaintTask(null).then(function () {
|
388 | if (textLayer) {
|
389 | var readableStream = pdfPage.streamTextContent({ normalizeWhitespace: true });
|
390 | textLayer.setTextContentStream(readableStream);
|
391 | textLayer.render();
|
392 | }
|
393 | });
|
394 | }, function (reason) {
|
395 | return finishPaintTask(reason);
|
396 | });
|
397 | if (this.annotationLayerFactory) {
|
398 | if (!this.annotationLayer) {
|
399 | this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n);
|
400 | }
|
401 | this.annotationLayer.render(this.viewport, 'display');
|
402 | }
|
403 | div.setAttribute('data-loaded', true);
|
404 | if (this.onBeforeDraw) {
|
405 | this.onBeforeDraw();
|
406 | }
|
407 | return resultPromise;
|
408 | }
|
409 | }, {
|
410 | key: 'paintOnCanvas',
|
411 | value: function paintOnCanvas(canvasWrapper) {
|
412 | var renderCapability = (0, _pdf.createPromiseCapability)();
|
413 | var result = {
|
414 | promise: renderCapability.promise,
|
415 | onRenderContinue: function onRenderContinue(cont) {
|
416 | cont();
|
417 | },
|
418 | cancel: function cancel() {
|
419 | renderTask.cancel();
|
420 | }
|
421 | };
|
422 | var viewport = this.viewport;
|
423 | var canvas = document.createElement('canvas');
|
424 | canvas.id = this.renderingId;
|
425 | canvas.setAttribute('hidden', 'hidden');
|
426 | var isCanvasHidden = true;
|
427 | var showCanvas = function showCanvas() {
|
428 | if (isCanvasHidden) {
|
429 | canvas.removeAttribute('hidden');
|
430 | isCanvasHidden = false;
|
431 | }
|
432 | };
|
433 | canvasWrapper.appendChild(canvas);
|
434 | this.canvas = canvas;
|
435 | canvas.mozOpaque = true;
|
436 | var ctx = canvas.getContext('2d', { alpha: false });
|
437 | var outputScale = (0, _ui_utils.getOutputScale)(ctx);
|
438 | this.outputScale = outputScale;
|
439 | if (this.useOnlyCssZoom) {
|
440 | var actualSizeViewport = viewport.clone({ scale: _ui_utils.CSS_UNITS });
|
441 | outputScale.sx *= actualSizeViewport.width / viewport.width;
|
442 | outputScale.sy *= actualSizeViewport.height / viewport.height;
|
443 | outputScale.scaled = true;
|
444 | }
|
445 | if (this.maxCanvasPixels > 0) {
|
446 | var pixelsInViewport = viewport.width * viewport.height;
|
447 | var maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport);
|
448 | if (outputScale.sx > maxScale || outputScale.sy > maxScale) {
|
449 | outputScale.sx = maxScale;
|
450 | outputScale.sy = maxScale;
|
451 | outputScale.scaled = true;
|
452 | this.hasRestrictedScaling = true;
|
453 | } else {
|
454 | this.hasRestrictedScaling = false;
|
455 | }
|
456 | }
|
457 | var sfx = (0, _ui_utils.approximateFraction)(outputScale.sx);
|
458 | var sfy = (0, _ui_utils.approximateFraction)(outputScale.sy);
|
459 | canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]);
|
460 | canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]);
|
461 | canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + 'px';
|
462 | canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + 'px';
|
463 | this.paintedViewportMap.set(canvas, viewport);
|
464 | var transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0];
|
465 | var renderContext = {
|
466 | canvasContext: ctx,
|
467 | transform: transform,
|
468 | viewport: this.viewport,
|
469 | enableWebGL: this.enableWebGL,
|
470 | renderInteractiveForms: this.renderInteractiveForms
|
471 | };
|
472 | var renderTask = this.pdfPage.render(renderContext);
|
473 | renderTask.onContinue = function (cont) {
|
474 | showCanvas();
|
475 | if (result.onRenderContinue) {
|
476 | result.onRenderContinue(cont);
|
477 | } else {
|
478 | cont();
|
479 | }
|
480 | };
|
481 | renderTask.promise.then(function () {
|
482 | showCanvas();
|
483 | renderCapability.resolve(undefined);
|
484 | }, function (error) {
|
485 | showCanvas();
|
486 | renderCapability.reject(error);
|
487 | });
|
488 | return result;
|
489 | }
|
490 | }, {
|
491 | key: 'paintOnSvg',
|
492 | value: function paintOnSvg(wrapper) {
|
493 | var _this2 = this;
|
494 |
|
495 | var cancelled = false;
|
496 | var ensureNotCancelled = function ensureNotCancelled() {
|
497 | if (cancelled) {
|
498 | throw new _pdf.RenderingCancelledException('Rendering cancelled, page ' + _this2.id, 'svg');
|
499 | }
|
500 | };
|
501 | var pdfPage = this.pdfPage;
|
502 | var actualSizeViewport = this.viewport.clone({ scale: _ui_utils.CSS_UNITS });
|
503 | var promise = pdfPage.getOperatorList().then(function (opList) {
|
504 | ensureNotCancelled();
|
505 | var svgGfx = new _pdf.SVGGraphics(pdfPage.commonObjs, pdfPage.objs);
|
506 | return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) {
|
507 | ensureNotCancelled();
|
508 | _this2.svg = svg;
|
509 | _this2.paintedViewportMap.set(svg, actualSizeViewport);
|
510 | svg.style.width = wrapper.style.width;
|
511 | svg.style.height = wrapper.style.height;
|
512 | _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED;
|
513 | wrapper.appendChild(svg);
|
514 | });
|
515 | });
|
516 | return {
|
517 | promise: promise,
|
518 | onRenderContinue: function onRenderContinue(cont) {
|
519 | cont();
|
520 | },
|
521 | cancel: function cancel() {
|
522 | cancelled = true;
|
523 | }
|
524 | };
|
525 | }
|
526 | }, {
|
527 | key: 'setPageLabel',
|
528 | value: function setPageLabel(label) {
|
529 | this.pageLabel = typeof label === 'string' ? label : null;
|
530 | if (this.pageLabel !== null) {
|
531 | this.div.setAttribute('data-page-label', this.pageLabel);
|
532 | } else {
|
533 | this.div.removeAttribute('data-page-label');
|
534 | }
|
535 | }
|
536 | }, {
|
537 | key: 'width',
|
538 | get: function get() {
|
539 | return this.viewport.width;
|
540 | }
|
541 | }, {
|
542 | key: 'height',
|
543 | get: function get() {
|
544 | return this.viewport.height;
|
545 | }
|
546 | }]);
|
547 |
|
548 | return PDFPageView;
|
549 | }();
|
550 |
|
551 | exports.PDFPageView = PDFPageView; |
\ | No newline at end of file |