pdfjs-dist 2.0.550 → 2.3.200
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +21618 -14369
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +22758 -11399
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/image_decoders/pdf.image_decoders.js +11500 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +767 -258
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +428 -157
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +173 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +575 -272
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1032 -351
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +813 -196
- package/lib/core/function.js +253 -27
- package/lib/core/glyphlist.js +5 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +502 -72
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +293 -52
- package/lib/core/jpx.js +419 -12
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1368 -500
- package/lib/core/operator_list.js +159 -43
- package/lib/core/parser.js +544 -199
- package/lib/core/pattern.js +170 -21
- package/lib/core/pdf_manager.js +324 -134
- package/lib/core/primitives.js +169 -61
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +327 -34
- package/lib/core/type1_parser.js +148 -8
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +215 -229
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +618 -192
- package/lib/display/api.js +1798 -882
- package/lib/display/api_compatibility.js +5 -10
- package/lib/display/canvas.js +366 -45
- package/lib/display/content_disposition.js +71 -24
- package/lib/display/display_utils.js +777 -0
- package/lib/display/fetch_stream.js +205 -87
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +38 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +103 -36
- package/lib/display/svg.js +1232 -519
- package/lib/display/text_layer.js +208 -75
- package/lib/display/transport_stream.js +345 -94
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +60 -4
- package/lib/pdf.js +35 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +170 -572
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +216 -163
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/util.js +495 -385
- package/lib/test/unit/annotation_spec.js +1464 -401
- package/lib/test/unit/api_spec.js +718 -361
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +9 -10
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +59 -20
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/message_handler_spec.js +30 -13
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +22 -55
- package/lib/test/unit/network_utils_spec.js +105 -14
- package/lib/test/unit/node_stream_spec.js +58 -34
- package/lib/test/unit/parser_spec.js +162 -71
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +55 -22
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +9 -7
- package/lib/test/unit/ui_utils_spec.js +236 -36
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1252 -609
- package/lib/web/app_options.js +103 -65
- package/lib/web/base_viewer.js +522 -242
- package/lib/web/chromecom.js +259 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +31 -12
- package/lib/web/firefox_print_service.js +27 -14
- package/lib/web/firefoxcom.js +318 -78
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +174 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +255 -136
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +144 -79
- package/lib/web/pdf_outline_viewer.js +124 -47
- package/lib/web/pdf_page_view.js +194 -74
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +59 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +144 -81
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +82 -87
- package/lib/web/preferences.js +284 -91
- package/lib/web/secondary_toolbar.js +132 -59
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +80 -43
- package/lib/web/ui_utils.js +400 -134
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +3 -8
- package/package.json +3 -2
- package/web/pdf_viewer.css +23 -15
- package/web/pdf_viewer.js +3429 -1245
- package/web/pdf_viewer.js.map +1 -1
- package/external/streams/streams-lib.js +0 -3962
- package/lib/display/dom_utils.js +0 -429
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
package/lib/display/api.js
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2019 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,103 +19,164 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.
|
27
|
+
exports.getDocument = getDocument;
|
28
|
+
exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
|
29
|
+
exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
|
28
30
|
|
29
|
-
var
|
31
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
30
32
|
|
31
|
-
var
|
33
|
+
var _util = require("../shared/util");
|
32
34
|
|
33
|
-
var
|
35
|
+
var _display_utils = require("./display_utils");
|
34
36
|
|
35
|
-
var
|
37
|
+
var _font_loader = require("./font_loader");
|
36
38
|
|
37
|
-
var
|
39
|
+
var _api_compatibility = require("./api_compatibility");
|
38
40
|
|
39
|
-
var
|
41
|
+
var _canvas = require("./canvas");
|
40
42
|
|
41
|
-
var
|
43
|
+
var _global_scope = _interopRequireDefault(require("../shared/global_scope"));
|
42
44
|
|
43
|
-
var
|
45
|
+
var _worker_options = require("./worker_options");
|
44
46
|
|
45
|
-
var
|
47
|
+
var _message_handler = require("../shared/message_handler");
|
46
48
|
|
47
|
-
var
|
49
|
+
var _metadata = require("./metadata");
|
48
50
|
|
49
|
-
var
|
51
|
+
var _transport_stream = require("./transport_stream");
|
50
52
|
|
51
|
-
var
|
53
|
+
var _webgl = require("./webgl");
|
52
54
|
|
53
|
-
|
55
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
54
56
|
|
55
|
-
var
|
57
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
56
58
|
|
57
|
-
function
|
59
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
60
|
+
|
61
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
62
|
+
|
63
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
64
|
+
|
65
|
+
function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
66
|
+
|
67
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
68
|
+
|
69
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
|
70
|
+
|
71
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
72
|
+
|
73
|
+
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
|
74
|
+
|
75
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
|
58
76
|
|
59
77
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
60
78
|
|
79
|
+
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); } }
|
80
|
+
|
81
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
82
|
+
|
83
|
+
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
84
|
+
|
61
85
|
var DEFAULT_RANGE_CHUNK_SIZE = 65536;
|
86
|
+
var RENDERING_CANCELLED_TIMEOUT = 100;
|
62
87
|
var isWorkerDisabled = false;
|
63
|
-
var
|
64
|
-
var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : null;
|
88
|
+
var fallbackWorkerSrc;
|
65
89
|
var fakeWorkerFilesLoader = null;
|
66
|
-
var useRequireEnsure = false;
|
67
90
|
{
|
91
|
+
var useRequireEnsure = false;
|
92
|
+
|
68
93
|
if (typeof window === 'undefined') {
|
69
94
|
isWorkerDisabled = true;
|
95
|
+
|
70
96
|
if (typeof require.ensure === 'undefined') {
|
71
97
|
require.ensure = require('node-ensure');
|
72
98
|
}
|
99
|
+
|
73
100
|
useRequireEnsure = true;
|
74
101
|
} else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {
|
75
102
|
useRequireEnsure = true;
|
76
103
|
}
|
104
|
+
|
77
105
|
if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
|
78
|
-
|
106
|
+
fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
|
79
107
|
}
|
108
|
+
|
80
109
|
var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;
|
81
|
-
fakeWorkerFilesLoader = useRequireEnsure ? function (
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
110
|
+
fakeWorkerFilesLoader = useRequireEnsure ? function () {
|
111
|
+
return new Promise(function (resolve, reject) {
|
112
|
+
require.ensure([], function () {
|
113
|
+
try {
|
114
|
+
var worker;
|
115
|
+
worker = require('../pdf.worker.js');
|
116
|
+
resolve(worker.WorkerMessageHandler);
|
117
|
+
} catch (ex) {
|
118
|
+
reject(ex);
|
119
|
+
}
|
120
|
+
}, reject, 'pdfjsWorker');
|
86
121
|
});
|
87
|
-
} : dynamicLoaderSupported ? function (
|
88
|
-
|
89
|
-
|
122
|
+
} : dynamicLoaderSupported ? function () {
|
123
|
+
return new Promise(function (resolve, reject) {
|
124
|
+
requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {
|
125
|
+
try {
|
126
|
+
resolve(worker.WorkerMessageHandler);
|
127
|
+
} catch (ex) {
|
128
|
+
reject(ex);
|
129
|
+
}
|
130
|
+
}, reject);
|
90
131
|
});
|
91
132
|
} : null;
|
133
|
+
|
134
|
+
if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) {
|
135
|
+
var pdfjsFilePath = document.currentScript && document.currentScript.src;
|
136
|
+
|
137
|
+
if (pdfjsFilePath) {
|
138
|
+
fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
|
139
|
+
}
|
140
|
+
}
|
92
141
|
}
|
93
142
|
var createPDFNetworkStream;
|
143
|
+
|
94
144
|
function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
|
95
145
|
createPDFNetworkStream = pdfNetworkStreamFactory;
|
96
146
|
}
|
147
|
+
|
97
148
|
function getDocument(src) {
|
98
149
|
var task = new PDFDocumentLoadingTask();
|
99
150
|
var source;
|
151
|
+
|
100
152
|
if (typeof src === 'string') {
|
101
|
-
source = {
|
153
|
+
source = {
|
154
|
+
url: src
|
155
|
+
};
|
102
156
|
} else if ((0, _util.isArrayBuffer)(src)) {
|
103
|
-
source = {
|
157
|
+
source = {
|
158
|
+
data: src
|
159
|
+
};
|
104
160
|
} else if (src instanceof PDFDataRangeTransport) {
|
105
|
-
source = {
|
161
|
+
source = {
|
162
|
+
range: src
|
163
|
+
};
|
106
164
|
} else {
|
107
|
-
if (
|
165
|
+
if (_typeof(src) !== 'object') {
|
108
166
|
throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');
|
109
167
|
}
|
168
|
+
|
110
169
|
if (!src.url && !src.data && !src.range) {
|
111
170
|
throw new Error('Invalid parameter object: need either .data, .range or .url');
|
112
171
|
}
|
172
|
+
|
113
173
|
source = src;
|
114
174
|
}
|
175
|
+
|
115
176
|
var params = Object.create(null);
|
116
|
-
var rangeTransport = null
|
117
|
-
|
118
|
-
|
177
|
+
var rangeTransport = null,
|
178
|
+
worker = null;
|
179
|
+
|
119
180
|
for (var key in source) {
|
120
181
|
if (key === 'url' && typeof window !== 'undefined') {
|
121
182
|
params[key] = new URL(source[key], window.location).href;
|
@@ -128,79 +189,90 @@ function getDocument(src) {
|
|
128
189
|
continue;
|
129
190
|
} else if (key === 'data' && !(source[key] instanceof Uint8Array)) {
|
130
191
|
var pdfBytes = source[key];
|
192
|
+
|
131
193
|
if (typeof pdfBytes === 'string') {
|
132
194
|
params[key] = (0, _util.stringToBytes)(pdfBytes);
|
133
|
-
} else if (
|
195
|
+
} else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {
|
134
196
|
params[key] = new Uint8Array(pdfBytes);
|
135
197
|
} else if ((0, _util.isArrayBuffer)(pdfBytes)) {
|
136
198
|
params[key] = new Uint8Array(pdfBytes);
|
137
199
|
} else {
|
138
200
|
throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');
|
139
201
|
}
|
140
|
-
|
141
|
-
} else if (key === 'CMapReaderFactory') {
|
142
|
-
CMapReaderFactory = source[key];
|
202
|
+
|
143
203
|
continue;
|
144
204
|
}
|
205
|
+
|
145
206
|
params[key] = source[key];
|
146
207
|
}
|
208
|
+
|
147
209
|
params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
|
210
|
+
params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;
|
148
211
|
params.ignoreErrors = params.stopAtErrors !== true;
|
149
212
|
params.pdfBug = params.pdfBug === true;
|
150
213
|
var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
|
214
|
+
|
151
215
|
if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {
|
152
216
|
params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;
|
153
217
|
}
|
218
|
+
|
154
219
|
if (!Number.isInteger(params.maxImageSize)) {
|
155
220
|
params.maxImageSize = -1;
|
156
221
|
}
|
222
|
+
|
157
223
|
if (typeof params.isEvalSupported !== 'boolean') {
|
158
224
|
params.isEvalSupported = true;
|
159
225
|
}
|
226
|
+
|
160
227
|
if (typeof params.disableFontFace !== 'boolean') {
|
161
228
|
params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
|
162
229
|
}
|
230
|
+
|
163
231
|
if (typeof params.disableRange !== 'boolean') {
|
164
|
-
params.disableRange =
|
232
|
+
params.disableRange = false;
|
165
233
|
}
|
234
|
+
|
166
235
|
if (typeof params.disableStream !== 'boolean') {
|
167
|
-
params.disableStream =
|
236
|
+
params.disableStream = false;
|
168
237
|
}
|
238
|
+
|
169
239
|
if (typeof params.disableAutoFetch !== 'boolean') {
|
170
240
|
params.disableAutoFetch = false;
|
171
241
|
}
|
242
|
+
|
172
243
|
if (typeof params.disableCreateObjectURL !== 'boolean') {
|
173
244
|
params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;
|
174
245
|
}
|
246
|
+
|
175
247
|
(0, _util.setVerbosityLevel)(params.verbosity);
|
248
|
+
|
176
249
|
if (!worker) {
|
177
250
|
var workerParams = {
|
178
|
-
|
179
|
-
|
251
|
+
verbosity: params.verbosity,
|
252
|
+
port: _worker_options.GlobalWorkerOptions.workerPort
|
180
253
|
};
|
181
|
-
|
182
|
-
if (workerPort) {
|
183
|
-
workerParams.port = workerPort;
|
184
|
-
worker = PDFWorker.fromPort(workerParams);
|
185
|
-
} else {
|
186
|
-
worker = new PDFWorker(workerParams);
|
187
|
-
}
|
254
|
+
worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
|
188
255
|
task._worker = worker;
|
189
256
|
}
|
257
|
+
|
190
258
|
var docId = task.docId;
|
191
259
|
worker.promise.then(function () {
|
192
260
|
if (task.destroyed) {
|
193
261
|
throw new Error('Loading aborted');
|
194
262
|
}
|
263
|
+
|
195
264
|
return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {
|
196
265
|
if (task.destroyed) {
|
197
266
|
throw new Error('Loading aborted');
|
198
267
|
}
|
199
|
-
|
268
|
+
|
269
|
+
var networkStream;
|
270
|
+
|
200
271
|
if (rangeTransport) {
|
201
272
|
networkStream = new _transport_stream.PDFDataTransportStream({
|
202
273
|
length: params.length,
|
203
274
|
initialData: params.initialData,
|
275
|
+
progressiveDone: params.progressiveDone,
|
204
276
|
disableRange: params.disableRange,
|
205
277
|
disableStream: params.disableStream
|
206
278
|
}, rangeTransport);
|
@@ -215,26 +287,31 @@ function getDocument(src) {
|
|
215
287
|
disableStream: params.disableStream
|
216
288
|
});
|
217
289
|
}
|
290
|
+
|
218
291
|
var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
|
219
292
|
messageHandler.postMessageTransfers = worker.postMessageTransfers;
|
220
|
-
var transport = new WorkerTransport(messageHandler, task, networkStream, params
|
293
|
+
var transport = new WorkerTransport(messageHandler, task, networkStream, params);
|
221
294
|
task._transport = transport;
|
222
295
|
messageHandler.send('Ready', null);
|
223
296
|
});
|
224
|
-
})
|
297
|
+
})["catch"](task._capability.reject);
|
225
298
|
return task;
|
226
299
|
}
|
300
|
+
|
227
301
|
function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
|
228
302
|
if (worker.destroyed) {
|
229
303
|
return Promise.reject(new Error('Worker was destroyed'));
|
230
304
|
}
|
305
|
+
|
231
306
|
if (pdfDataRangeTransport) {
|
232
307
|
source.length = pdfDataRangeTransport.length;
|
233
308
|
source.initialData = pdfDataRangeTransport.initialData;
|
309
|
+
source.progressiveDone = pdfDataRangeTransport.progressiveDone;
|
234
310
|
}
|
311
|
+
|
235
312
|
return worker.messageHandler.sendWithPromise('GetDocRequest', {
|
236
313
|
docId: docId,
|
237
|
-
apiVersion: '2.
|
314
|
+
apiVersion: '2.3.200',
|
238
315
|
source: {
|
239
316
|
data: source.data,
|
240
317
|
url: source.url,
|
@@ -255,175 +332,388 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
|
|
255
332
|
if (worker.destroyed) {
|
256
333
|
throw new Error('Worker was destroyed');
|
257
334
|
}
|
335
|
+
|
258
336
|
return workerId;
|
259
337
|
});
|
260
338
|
}
|
339
|
+
|
261
340
|
var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
|
262
341
|
var nextDocumentId = 0;
|
263
|
-
function PDFDocumentLoadingTask() {
|
264
|
-
this._capability = (0, _util.createPromiseCapability)();
|
265
|
-
this._transport = null;
|
266
|
-
this._worker = null;
|
267
|
-
this.docId = 'd' + nextDocumentId++;
|
268
|
-
this.destroyed = false;
|
269
|
-
this.onPassword = null;
|
270
|
-
this.onProgress = null;
|
271
|
-
this.onUnsupportedFeature = null;
|
272
|
-
}
|
273
|
-
PDFDocumentLoadingTask.prototype = {
|
274
|
-
get promise() {
|
275
|
-
return this._capability.promise;
|
276
|
-
},
|
277
|
-
destroy: function destroy() {
|
278
|
-
var _this = this;
|
279
342
|
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
_this._worker.destroy();
|
286
|
-
_this._worker = null;
|
287
|
-
}
|
288
|
-
});
|
289
|
-
},
|
343
|
+
var PDFDocumentLoadingTask =
|
344
|
+
/*#__PURE__*/
|
345
|
+
function () {
|
346
|
+
function PDFDocumentLoadingTask() {
|
347
|
+
_classCallCheck(this, PDFDocumentLoadingTask);
|
290
348
|
|
291
|
-
|
292
|
-
|
349
|
+
this._capability = (0, _util.createPromiseCapability)();
|
350
|
+
this._transport = null;
|
351
|
+
this._worker = null;
|
352
|
+
this.docId = 'd' + nextDocumentId++;
|
353
|
+
this.destroyed = false;
|
354
|
+
this.onPassword = null;
|
355
|
+
this.onProgress = null;
|
356
|
+
this.onUnsupportedFeature = null;
|
293
357
|
}
|
294
|
-
|
358
|
+
|
359
|
+
_createClass(PDFDocumentLoadingTask, [{
|
360
|
+
key: "destroy",
|
361
|
+
value: function destroy() {
|
362
|
+
var _this = this;
|
363
|
+
|
364
|
+
this.destroyed = true;
|
365
|
+
var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
|
366
|
+
return transportDestroyed.then(function () {
|
367
|
+
_this._transport = null;
|
368
|
+
|
369
|
+
if (_this._worker) {
|
370
|
+
_this._worker.destroy();
|
371
|
+
|
372
|
+
_this._worker = null;
|
373
|
+
}
|
374
|
+
});
|
375
|
+
}
|
376
|
+
}, {
|
377
|
+
key: "then",
|
378
|
+
value: function then(onFulfilled, onRejected) {
|
379
|
+
(0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.');
|
380
|
+
return this.promise.then.apply(this.promise, arguments);
|
381
|
+
}
|
382
|
+
}, {
|
383
|
+
key: "promise",
|
384
|
+
get: function get() {
|
385
|
+
return this._capability.promise;
|
386
|
+
}
|
387
|
+
}]);
|
388
|
+
|
389
|
+
return PDFDocumentLoadingTask;
|
390
|
+
}();
|
391
|
+
|
295
392
|
return PDFDocumentLoadingTask;
|
296
393
|
}();
|
297
|
-
|
394
|
+
|
395
|
+
var PDFDataRangeTransport =
|
396
|
+
/*#__PURE__*/
|
397
|
+
function () {
|
298
398
|
function PDFDataRangeTransport(length, initialData) {
|
399
|
+
var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
400
|
+
|
401
|
+
_classCallCheck(this, PDFDataRangeTransport);
|
402
|
+
|
299
403
|
this.length = length;
|
300
404
|
this.initialData = initialData;
|
405
|
+
this.progressiveDone = progressiveDone;
|
301
406
|
this._rangeListeners = [];
|
302
407
|
this._progressListeners = [];
|
303
408
|
this._progressiveReadListeners = [];
|
409
|
+
this._progressiveDoneListeners = [];
|
304
410
|
this._readyCapability = (0, _util.createPromiseCapability)();
|
305
411
|
}
|
306
|
-
|
307
|
-
|
412
|
+
|
413
|
+
_createClass(PDFDataRangeTransport, [{
|
414
|
+
key: "addRangeListener",
|
415
|
+
value: function addRangeListener(listener) {
|
308
416
|
this._rangeListeners.push(listener);
|
309
|
-
}
|
310
|
-
|
417
|
+
}
|
418
|
+
}, {
|
419
|
+
key: "addProgressListener",
|
420
|
+
value: function addProgressListener(listener) {
|
311
421
|
this._progressListeners.push(listener);
|
312
|
-
}
|
313
|
-
|
422
|
+
}
|
423
|
+
}, {
|
424
|
+
key: "addProgressiveReadListener",
|
425
|
+
value: function addProgressiveReadListener(listener) {
|
314
426
|
this._progressiveReadListeners.push(listener);
|
315
|
-
}
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
427
|
+
}
|
428
|
+
}, {
|
429
|
+
key: "addProgressiveDoneListener",
|
430
|
+
value: function addProgressiveDoneListener(listener) {
|
431
|
+
this._progressiveDoneListeners.push(listener);
|
432
|
+
}
|
433
|
+
}, {
|
434
|
+
key: "onDataRange",
|
435
|
+
value: function onDataRange(begin, chunk) {
|
436
|
+
var _iteratorNormalCompletion = true;
|
437
|
+
var _didIteratorError = false;
|
438
|
+
var _iteratorError = undefined;
|
439
|
+
|
440
|
+
try {
|
441
|
+
for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
442
|
+
var listener = _step.value;
|
443
|
+
listener(begin, chunk);
|
444
|
+
}
|
445
|
+
} catch (err) {
|
446
|
+
_didIteratorError = true;
|
447
|
+
_iteratorError = err;
|
448
|
+
} finally {
|
449
|
+
try {
|
450
|
+
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
451
|
+
_iterator["return"]();
|
452
|
+
}
|
453
|
+
} finally {
|
454
|
+
if (_didIteratorError) {
|
455
|
+
throw _iteratorError;
|
456
|
+
}
|
457
|
+
}
|
320
458
|
}
|
321
|
-
}
|
322
|
-
|
459
|
+
}
|
460
|
+
}, {
|
461
|
+
key: "onDataProgress",
|
462
|
+
value: function onDataProgress(loaded, total) {
|
323
463
|
var _this2 = this;
|
324
464
|
|
325
465
|
this._readyCapability.promise.then(function () {
|
326
|
-
var
|
327
|
-
|
328
|
-
|
466
|
+
var _iteratorNormalCompletion2 = true;
|
467
|
+
var _didIteratorError2 = false;
|
468
|
+
var _iteratorError2 = undefined;
|
469
|
+
|
470
|
+
try {
|
471
|
+
for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
472
|
+
var listener = _step2.value;
|
473
|
+
listener(loaded, total);
|
474
|
+
}
|
475
|
+
} catch (err) {
|
476
|
+
_didIteratorError2 = true;
|
477
|
+
_iteratorError2 = err;
|
478
|
+
} finally {
|
479
|
+
try {
|
480
|
+
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
481
|
+
_iterator2["return"]();
|
482
|
+
}
|
483
|
+
} finally {
|
484
|
+
if (_didIteratorError2) {
|
485
|
+
throw _iteratorError2;
|
486
|
+
}
|
487
|
+
}
|
329
488
|
}
|
330
489
|
});
|
331
|
-
}
|
332
|
-
|
490
|
+
}
|
491
|
+
}, {
|
492
|
+
key: "onDataProgressiveRead",
|
493
|
+
value: function onDataProgressiveRead(chunk) {
|
333
494
|
var _this3 = this;
|
334
495
|
|
335
496
|
this._readyCapability.promise.then(function () {
|
336
|
-
var
|
337
|
-
|
338
|
-
|
497
|
+
var _iteratorNormalCompletion3 = true;
|
498
|
+
var _didIteratorError3 = false;
|
499
|
+
var _iteratorError3 = undefined;
|
500
|
+
|
501
|
+
try {
|
502
|
+
for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
503
|
+
var listener = _step3.value;
|
504
|
+
listener(chunk);
|
505
|
+
}
|
506
|
+
} catch (err) {
|
507
|
+
_didIteratorError3 = true;
|
508
|
+
_iteratorError3 = err;
|
509
|
+
} finally {
|
510
|
+
try {
|
511
|
+
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
512
|
+
_iterator3["return"]();
|
513
|
+
}
|
514
|
+
} finally {
|
515
|
+
if (_didIteratorError3) {
|
516
|
+
throw _iteratorError3;
|
517
|
+
}
|
518
|
+
}
|
339
519
|
}
|
340
520
|
});
|
341
|
-
}
|
342
|
-
|
521
|
+
}
|
522
|
+
}, {
|
523
|
+
key: "onDataProgressiveDone",
|
524
|
+
value: function onDataProgressiveDone() {
|
525
|
+
var _this4 = this;
|
526
|
+
|
527
|
+
this._readyCapability.promise.then(function () {
|
528
|
+
var _iteratorNormalCompletion4 = true;
|
529
|
+
var _didIteratorError4 = false;
|
530
|
+
var _iteratorError4 = undefined;
|
531
|
+
|
532
|
+
try {
|
533
|
+
for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
|
534
|
+
var listener = _step4.value;
|
535
|
+
listener();
|
536
|
+
}
|
537
|
+
} catch (err) {
|
538
|
+
_didIteratorError4 = true;
|
539
|
+
_iteratorError4 = err;
|
540
|
+
} finally {
|
541
|
+
try {
|
542
|
+
if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
|
543
|
+
_iterator4["return"]();
|
544
|
+
}
|
545
|
+
} finally {
|
546
|
+
if (_didIteratorError4) {
|
547
|
+
throw _iteratorError4;
|
548
|
+
}
|
549
|
+
}
|
550
|
+
}
|
551
|
+
});
|
552
|
+
}
|
553
|
+
}, {
|
554
|
+
key: "transportReady",
|
555
|
+
value: function transportReady() {
|
343
556
|
this._readyCapability.resolve();
|
344
|
-
}
|
345
|
-
|
557
|
+
}
|
558
|
+
}, {
|
559
|
+
key: "requestDataRange",
|
560
|
+
value: function requestDataRange(begin, end) {
|
346
561
|
(0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');
|
347
|
-
}
|
348
|
-
|
349
|
-
|
562
|
+
}
|
563
|
+
}, {
|
564
|
+
key: "abort",
|
565
|
+
value: function abort() {}
|
566
|
+
}]);
|
567
|
+
|
350
568
|
return PDFDataRangeTransport;
|
351
569
|
}();
|
352
|
-
var PDFDocumentProxy = function PDFDocumentProxyClosure() {
|
353
|
-
function PDFDocumentProxy(pdfInfo, transport, loadingTask) {
|
354
|
-
this.pdfInfo = pdfInfo;
|
355
|
-
this.transport = transport;
|
356
|
-
this.loadingTask = loadingTask;
|
357
|
-
}
|
358
|
-
PDFDocumentProxy.prototype = {
|
359
|
-
get numPages() {
|
360
|
-
return this.pdfInfo.numPages;
|
361
|
-
},
|
362
|
-
get fingerprint() {
|
363
|
-
return this.pdfInfo.fingerprint;
|
364
|
-
},
|
365
|
-
getPage: function getPage(pageNumber) {
|
366
|
-
return this.transport.getPage(pageNumber);
|
367
|
-
},
|
368
570
|
|
369
|
-
|
370
|
-
return this.transport.getPageIndex(ref);
|
371
|
-
},
|
372
|
-
getDestinations: function PDFDocumentProxy_getDestinations() {
|
373
|
-
return this.transport.getDestinations();
|
374
|
-
},
|
375
|
-
getDestination: function PDFDocumentProxy_getDestination(id) {
|
376
|
-
return this.transport.getDestination(id);
|
377
|
-
},
|
378
|
-
getPageLabels: function PDFDocumentProxy_getPageLabels() {
|
379
|
-
return this.transport.getPageLabels();
|
380
|
-
},
|
381
|
-
getPageMode: function getPageMode() {
|
382
|
-
return this.transport.getPageMode();
|
383
|
-
},
|
571
|
+
exports.PDFDataRangeTransport = PDFDataRangeTransport;
|
384
572
|
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
},
|
573
|
+
var PDFDocumentProxy =
|
574
|
+
/*#__PURE__*/
|
575
|
+
function () {
|
576
|
+
function PDFDocumentProxy(pdfInfo, transport) {
|
577
|
+
_classCallCheck(this, PDFDocumentProxy);
|
391
578
|
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
return this.
|
400
|
-
}
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
579
|
+
this._pdfInfo = pdfInfo;
|
580
|
+
this._transport = transport;
|
581
|
+
}
|
582
|
+
|
583
|
+
_createClass(PDFDocumentProxy, [{
|
584
|
+
key: "getPage",
|
585
|
+
value: function getPage(pageNumber) {
|
586
|
+
return this._transport.getPage(pageNumber);
|
587
|
+
}
|
588
|
+
}, {
|
589
|
+
key: "getPageIndex",
|
590
|
+
value: function getPageIndex(ref) {
|
591
|
+
return this._transport.getPageIndex(ref);
|
592
|
+
}
|
593
|
+
}, {
|
594
|
+
key: "getDestinations",
|
595
|
+
value: function getDestinations() {
|
596
|
+
return this._transport.getDestinations();
|
597
|
+
}
|
598
|
+
}, {
|
599
|
+
key: "getDestination",
|
600
|
+
value: function getDestination(id) {
|
601
|
+
return this._transport.getDestination(id);
|
602
|
+
}
|
603
|
+
}, {
|
604
|
+
key: "getPageLabels",
|
605
|
+
value: function getPageLabels() {
|
606
|
+
return this._transport.getPageLabels();
|
607
|
+
}
|
608
|
+
}, {
|
609
|
+
key: "getPageLayout",
|
610
|
+
value: function getPageLayout() {
|
611
|
+
return this._transport.getPageLayout();
|
612
|
+
}
|
613
|
+
}, {
|
614
|
+
key: "getPageMode",
|
615
|
+
value: function getPageMode() {
|
616
|
+
return this._transport.getPageMode();
|
617
|
+
}
|
618
|
+
}, {
|
619
|
+
key: "getViewerPreferences",
|
620
|
+
value: function getViewerPreferences() {
|
621
|
+
return this._transport.getViewerPreferences();
|
622
|
+
}
|
623
|
+
}, {
|
624
|
+
key: "getOpenActionDestination",
|
625
|
+
value: function getOpenActionDestination() {
|
626
|
+
return this._transport.getOpenActionDestination();
|
627
|
+
}
|
628
|
+
}, {
|
629
|
+
key: "getAttachments",
|
630
|
+
value: function getAttachments() {
|
631
|
+
return this._transport.getAttachments();
|
632
|
+
}
|
633
|
+
}, {
|
634
|
+
key: "getJavaScript",
|
635
|
+
value: function getJavaScript() {
|
636
|
+
return this._transport.getJavaScript();
|
637
|
+
}
|
638
|
+
}, {
|
639
|
+
key: "getOutline",
|
640
|
+
value: function getOutline() {
|
641
|
+
return this._transport.getOutline();
|
642
|
+
}
|
643
|
+
}, {
|
644
|
+
key: "getPermissions",
|
645
|
+
value: function getPermissions() {
|
646
|
+
return this._transport.getPermissions();
|
647
|
+
}
|
648
|
+
}, {
|
649
|
+
key: "getMetadata",
|
650
|
+
value: function getMetadata() {
|
651
|
+
return this._transport.getMetadata();
|
652
|
+
}
|
653
|
+
}, {
|
654
|
+
key: "getData",
|
655
|
+
value: function getData() {
|
656
|
+
return this._transport.getData();
|
657
|
+
}
|
658
|
+
}, {
|
659
|
+
key: "getDownloadInfo",
|
660
|
+
value: function getDownloadInfo() {
|
661
|
+
return this._transport.downloadInfoCapability.promise;
|
662
|
+
}
|
663
|
+
}, {
|
664
|
+
key: "getStats",
|
665
|
+
value: function getStats() {
|
666
|
+
return this._transport.getStats();
|
667
|
+
}
|
668
|
+
}, {
|
669
|
+
key: "cleanup",
|
670
|
+
value: function cleanup() {
|
671
|
+
this._transport.startCleanup();
|
672
|
+
}
|
673
|
+
}, {
|
674
|
+
key: "destroy",
|
675
|
+
value: function destroy() {
|
411
676
|
return this.loadingTask.destroy();
|
412
|
-
},
|
413
|
-
get loadingParams() {
|
414
|
-
return this.transport.loadingParams;
|
415
677
|
}
|
416
|
-
}
|
678
|
+
}, {
|
679
|
+
key: "numPages",
|
680
|
+
get: function get() {
|
681
|
+
return this._pdfInfo.numPages;
|
682
|
+
}
|
683
|
+
}, {
|
684
|
+
key: "fingerprint",
|
685
|
+
get: function get() {
|
686
|
+
return this._pdfInfo.fingerprint;
|
687
|
+
}
|
688
|
+
}, {
|
689
|
+
key: "loadingParams",
|
690
|
+
get: function get() {
|
691
|
+
return this._transport.loadingParams;
|
692
|
+
}
|
693
|
+
}, {
|
694
|
+
key: "loadingTask",
|
695
|
+
get: function get() {
|
696
|
+
return this._transport.loadingTask;
|
697
|
+
}
|
698
|
+
}]);
|
699
|
+
|
417
700
|
return PDFDocumentProxy;
|
418
701
|
}();
|
419
|
-
|
702
|
+
|
703
|
+
exports.PDFDocumentProxy = PDFDocumentProxy;
|
704
|
+
|
705
|
+
var PDFPageProxy =
|
706
|
+
/*#__PURE__*/
|
707
|
+
function () {
|
420
708
|
function PDFPageProxy(pageIndex, pageInfo, transport) {
|
421
709
|
var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
422
710
|
|
711
|
+
_classCallCheck(this, PDFPageProxy);
|
712
|
+
|
423
713
|
this.pageIndex = pageIndex;
|
424
|
-
this.
|
425
|
-
this.
|
426
|
-
this._stats = pdfBug ? new
|
714
|
+
this._pageInfo = pageInfo;
|
715
|
+
this._transport = transport;
|
716
|
+
this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer;
|
427
717
|
this._pdfBug = pdfBug;
|
428
718
|
this.commonObjs = transport.commonObjs;
|
429
719
|
this.objs = new PDFObjects();
|
@@ -432,57 +722,88 @@ var PDFPageProxy = function PDFPageProxyClosure() {
|
|
432
722
|
this.intentStates = Object.create(null);
|
433
723
|
this.destroyed = false;
|
434
724
|
}
|
435
|
-
PDFPageProxy.prototype = {
|
436
|
-
get pageNumber() {
|
437
|
-
return this.pageIndex + 1;
|
438
|
-
},
|
439
|
-
get rotate() {
|
440
|
-
return this.pageInfo.rotate;
|
441
|
-
},
|
442
|
-
get ref() {
|
443
|
-
return this.pageInfo.ref;
|
444
|
-
},
|
445
|
-
get userUnit() {
|
446
|
-
return this.pageInfo.userUnit;
|
447
|
-
},
|
448
|
-
get view() {
|
449
|
-
return this.pageInfo.view;
|
450
|
-
},
|
451
|
-
getViewport: function getViewport(scale) {
|
452
|
-
var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate;
|
453
|
-
var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
454
725
|
|
455
|
-
|
726
|
+
_createClass(PDFPageProxy, [{
|
727
|
+
key: "getViewport",
|
728
|
+
value: function getViewport() {
|
729
|
+
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
730
|
+
scale = _ref.scale,
|
731
|
+
_ref$rotation = _ref.rotation,
|
732
|
+
rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,
|
733
|
+
_ref$dontFlip = _ref.dontFlip,
|
734
|
+
dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;
|
735
|
+
|
736
|
+
if (arguments.length > 1 || typeof arguments[0] === 'number') {
|
737
|
+
(0, _display_utils.deprecated)('getViewport is called with obsolete arguments.');
|
738
|
+
scale = arguments[0];
|
739
|
+
rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;
|
740
|
+
dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;
|
741
|
+
}
|
742
|
+
|
743
|
+
return new _display_utils.PageViewport({
|
456
744
|
viewBox: this.view,
|
457
745
|
scale: scale,
|
458
|
-
rotation:
|
746
|
+
rotation: rotation,
|
459
747
|
dontFlip: dontFlip
|
460
748
|
});
|
461
|
-
}
|
749
|
+
}
|
750
|
+
}, {
|
751
|
+
key: "getAnnotations",
|
752
|
+
value: function getAnnotations() {
|
753
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
754
|
+
_ref2$intent = _ref2.intent,
|
755
|
+
intent = _ref2$intent === void 0 ? null : _ref2$intent;
|
462
756
|
|
463
|
-
getAnnotations: function PDFPageProxy_getAnnotations(params) {
|
464
|
-
var intent = params && params.intent || null;
|
465
757
|
if (!this.annotationsPromise || this.annotationsIntent !== intent) {
|
466
|
-
this.annotationsPromise = this.
|
758
|
+
this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent);
|
467
759
|
this.annotationsIntent = intent;
|
468
760
|
}
|
761
|
+
|
469
762
|
return this.annotationsPromise;
|
470
|
-
}
|
471
|
-
|
472
|
-
|
763
|
+
}
|
764
|
+
}, {
|
765
|
+
key: "render",
|
766
|
+
value: function render(_ref3) {
|
767
|
+
var _this5 = this;
|
473
768
|
|
769
|
+
var canvasContext = _ref3.canvasContext,
|
770
|
+
viewport = _ref3.viewport,
|
771
|
+
_ref3$intent = _ref3.intent,
|
772
|
+
intent = _ref3$intent === void 0 ? 'display' : _ref3$intent,
|
773
|
+
_ref3$enableWebGL = _ref3.enableWebGL,
|
774
|
+
enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,
|
775
|
+
_ref3$renderInteracti = _ref3.renderInteractiveForms,
|
776
|
+
renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,
|
777
|
+
_ref3$transform = _ref3.transform,
|
778
|
+
transform = _ref3$transform === void 0 ? null : _ref3$transform,
|
779
|
+
_ref3$imageLayer = _ref3.imageLayer,
|
780
|
+
imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,
|
781
|
+
_ref3$canvasFactory = _ref3.canvasFactory,
|
782
|
+
canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,
|
783
|
+
_ref3$background = _ref3.background,
|
784
|
+
background = _ref3$background === void 0 ? null : _ref3$background;
|
474
785
|
var stats = this._stats;
|
475
786
|
stats.time('Overall');
|
787
|
+
var renderingIntent = intent === 'print' ? 'print' : 'display';
|
476
788
|
this.pendingCleanup = false;
|
477
|
-
|
478
|
-
var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory();
|
479
|
-
var webGLContext = new _webgl.WebGLContext({ enable: params.enableWebGL });
|
789
|
+
|
480
790
|
if (!this.intentStates[renderingIntent]) {
|
481
791
|
this.intentStates[renderingIntent] = Object.create(null);
|
482
792
|
}
|
793
|
+
|
483
794
|
var intentState = this.intentStates[renderingIntent];
|
795
|
+
|
796
|
+
if (intentState.streamReaderCancelTimeout) {
|
797
|
+
clearTimeout(intentState.streamReaderCancelTimeout);
|
798
|
+
intentState.streamReaderCancelTimeout = null;
|
799
|
+
}
|
800
|
+
|
801
|
+
var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();
|
802
|
+
var webGLContext = new _webgl.WebGLContext({
|
803
|
+
enable: enableWebGL
|
804
|
+
});
|
805
|
+
|
484
806
|
if (!intentState.displayReadyCapability) {
|
485
|
-
intentState.receivingOperatorList = true;
|
486
807
|
intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
|
487
808
|
intentState.operatorList = {
|
488
809
|
fnArray: [],
|
@@ -490,67 +811,105 @@ var PDFPageProxy = function PDFPageProxyClosure() {
|
|
490
811
|
lastChunk: false
|
491
812
|
};
|
492
813
|
stats.time('Page Request');
|
493
|
-
|
814
|
+
|
815
|
+
this._pumpOperatorList({
|
494
816
|
pageIndex: this.pageNumber - 1,
|
495
817
|
intent: renderingIntent,
|
496
|
-
renderInteractiveForms:
|
818
|
+
renderInteractiveForms: renderInteractiveForms === true
|
497
819
|
});
|
498
820
|
}
|
821
|
+
|
499
822
|
var complete = function complete(error) {
|
500
823
|
var i = intentState.renderTasks.indexOf(internalRenderTask);
|
824
|
+
|
501
825
|
if (i >= 0) {
|
502
826
|
intentState.renderTasks.splice(i, 1);
|
503
827
|
}
|
504
|
-
|
505
|
-
|
828
|
+
|
829
|
+
if (_this5.cleanupAfterRender || renderingIntent === 'print') {
|
830
|
+
_this5.pendingCleanup = true;
|
506
831
|
}
|
507
|
-
|
832
|
+
|
833
|
+
_this5._tryCleanup();
|
834
|
+
|
508
835
|
if (error) {
|
509
836
|
internalRenderTask.capability.reject(error);
|
837
|
+
|
838
|
+
_this5._abortOperatorList({
|
839
|
+
intentState: intentState,
|
840
|
+
reason: error
|
841
|
+
});
|
510
842
|
} else {
|
511
843
|
internalRenderTask.capability.resolve();
|
512
844
|
}
|
845
|
+
|
513
846
|
stats.timeEnd('Rendering');
|
514
847
|
stats.timeEnd('Overall');
|
515
848
|
};
|
516
|
-
|
517
|
-
internalRenderTask
|
849
|
+
|
850
|
+
var internalRenderTask = new InternalRenderTask({
|
851
|
+
callback: complete,
|
852
|
+
params: {
|
853
|
+
canvasContext: canvasContext,
|
854
|
+
viewport: viewport,
|
855
|
+
transform: transform,
|
856
|
+
imageLayer: imageLayer,
|
857
|
+
background: background
|
858
|
+
},
|
859
|
+
objs: this.objs,
|
860
|
+
commonObjs: this.commonObjs,
|
861
|
+
operatorList: intentState.operatorList,
|
862
|
+
pageNumber: this.pageNumber,
|
863
|
+
canvasFactory: canvasFactoryInstance,
|
864
|
+
webGLContext: webGLContext,
|
865
|
+
useRequestAnimationFrame: renderingIntent !== 'print',
|
866
|
+
pdfBug: this._pdfBug
|
867
|
+
});
|
868
|
+
|
518
869
|
if (!intentState.renderTasks) {
|
519
870
|
intentState.renderTasks = [];
|
520
871
|
}
|
872
|
+
|
521
873
|
intentState.renderTasks.push(internalRenderTask);
|
522
874
|
var renderTask = internalRenderTask.task;
|
523
875
|
intentState.displayReadyCapability.promise.then(function (transparency) {
|
524
|
-
if (
|
876
|
+
if (_this5.pendingCleanup) {
|
525
877
|
complete();
|
526
878
|
return;
|
527
879
|
}
|
880
|
+
|
528
881
|
stats.time('Rendering');
|
529
882
|
internalRenderTask.initializeGraphics(transparency);
|
530
883
|
internalRenderTask.operatorListChanged();
|
531
|
-
})
|
884
|
+
})["catch"](complete);
|
532
885
|
return renderTask;
|
533
|
-
}
|
534
|
-
|
886
|
+
}
|
887
|
+
}, {
|
888
|
+
key: "getOperatorList",
|
889
|
+
value: function getOperatorList() {
|
535
890
|
function operatorListChanged() {
|
536
891
|
if (intentState.operatorList.lastChunk) {
|
537
892
|
intentState.opListReadCapability.resolve(intentState.operatorList);
|
538
893
|
var i = intentState.renderTasks.indexOf(opListTask);
|
894
|
+
|
539
895
|
if (i >= 0) {
|
540
896
|
intentState.renderTasks.splice(i, 1);
|
541
897
|
}
|
542
898
|
}
|
543
899
|
}
|
900
|
+
|
544
901
|
var renderingIntent = 'oplist';
|
902
|
+
|
545
903
|
if (!this.intentStates[renderingIntent]) {
|
546
904
|
this.intentStates[renderingIntent] = Object.create(null);
|
547
905
|
}
|
906
|
+
|
548
907
|
var intentState = this.intentStates[renderingIntent];
|
549
908
|
var opListTask;
|
909
|
+
|
550
910
|
if (!intentState.opListReadCapability) {
|
551
911
|
opListTask = {};
|
552
912
|
opListTask.operatorListChanged = operatorListChanged;
|
553
|
-
intentState.receivingOperatorList = true;
|
554
913
|
intentState.opListReadCapability = (0, _util.createPromiseCapability)();
|
555
914
|
intentState.renderTasks = [];
|
556
915
|
intentState.renderTasks.push(opListTask);
|
@@ -559,47 +918,64 @@ var PDFPageProxy = function PDFPageProxyClosure() {
|
|
559
918
|
argsArray: [],
|
560
919
|
lastChunk: false
|
561
920
|
};
|
562
|
-
|
921
|
+
|
922
|
+
this._stats.time('Page Request');
|
923
|
+
|
924
|
+
this._pumpOperatorList({
|
563
925
|
pageIndex: this.pageIndex,
|
564
926
|
intent: renderingIntent
|
565
927
|
});
|
566
928
|
}
|
929
|
+
|
567
930
|
return intentState.opListReadCapability.promise;
|
568
|
-
}
|
569
|
-
|
570
|
-
|
931
|
+
}
|
932
|
+
}, {
|
933
|
+
key: "streamTextContent",
|
934
|
+
value: function streamTextContent() {
|
935
|
+
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
936
|
+
_ref4$normalizeWhites = _ref4.normalizeWhitespace,
|
937
|
+
normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,
|
938
|
+
_ref4$disableCombineT = _ref4.disableCombineTextItems,
|
939
|
+
disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;
|
571
940
|
|
572
941
|
var TEXT_CONTENT_CHUNK_SIZE = 100;
|
573
|
-
return this.
|
942
|
+
return this._transport.messageHandler.sendWithStream('GetTextContent', {
|
574
943
|
pageIndex: this.pageNumber - 1,
|
575
|
-
normalizeWhitespace:
|
576
|
-
combineTextItems:
|
944
|
+
normalizeWhitespace: normalizeWhitespace === true,
|
945
|
+
combineTextItems: disableCombineTextItems !== true
|
577
946
|
}, {
|
578
947
|
highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
|
579
948
|
size: function size(textContent) {
|
580
949
|
return textContent.items.length;
|
581
950
|
}
|
582
951
|
});
|
583
|
-
}
|
584
|
-
|
585
|
-
|
586
|
-
|
952
|
+
}
|
953
|
+
}, {
|
954
|
+
key: "getTextContent",
|
955
|
+
value: function getTextContent() {
|
956
|
+
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
587
957
|
var readableStream = this.streamTextContent(params);
|
588
958
|
return new Promise(function (resolve, reject) {
|
589
959
|
function pump() {
|
590
|
-
reader.read().then(function (
|
591
|
-
var
|
592
|
-
|
960
|
+
reader.read().then(function (_ref5) {
|
961
|
+
var _textContent$items;
|
962
|
+
|
963
|
+
var value = _ref5.value,
|
964
|
+
done = _ref5.done;
|
593
965
|
|
594
966
|
if (done) {
|
595
967
|
resolve(textContent);
|
596
968
|
return;
|
597
969
|
}
|
598
|
-
|
599
|
-
|
970
|
+
|
971
|
+
Object.assign(textContent.styles, value.styles);
|
972
|
+
|
973
|
+
(_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));
|
974
|
+
|
600
975
|
pump();
|
601
976
|
}, reject);
|
602
977
|
}
|
978
|
+
|
603
979
|
var reader = readableStream.getReader();
|
604
980
|
var textContent = {
|
605
981
|
items: [],
|
@@ -607,83 +983,256 @@ var PDFPageProxy = function PDFPageProxyClosure() {
|
|
607
983
|
};
|
608
984
|
pump();
|
609
985
|
});
|
610
|
-
}
|
611
|
-
|
986
|
+
}
|
987
|
+
}, {
|
988
|
+
key: "_destroy",
|
989
|
+
value: function _destroy() {
|
990
|
+
var _this6 = this;
|
991
|
+
|
612
992
|
this.destroyed = true;
|
613
|
-
this.
|
993
|
+
this._transport.pageCache[this.pageIndex] = null;
|
614
994
|
var waitOn = [];
|
615
995
|
Object.keys(this.intentStates).forEach(function (intent) {
|
996
|
+
var intentState = _this6.intentStates[intent];
|
997
|
+
|
998
|
+
_this6._abortOperatorList({
|
999
|
+
intentState: intentState,
|
1000
|
+
reason: new Error('Page was destroyed.'),
|
1001
|
+
force: true
|
1002
|
+
});
|
1003
|
+
|
616
1004
|
if (intent === 'oplist') {
|
617
1005
|
return;
|
618
1006
|
}
|
619
|
-
|
1007
|
+
|
620
1008
|
intentState.renderTasks.forEach(function (renderTask) {
|
621
|
-
var renderCompleted = renderTask.capability.promise
|
1009
|
+
var renderCompleted = renderTask.capability.promise["catch"](function () {});
|
622
1010
|
waitOn.push(renderCompleted);
|
623
1011
|
renderTask.cancel();
|
624
1012
|
});
|
625
|
-
}
|
1013
|
+
});
|
626
1014
|
this.objs.clear();
|
627
1015
|
this.annotationsPromise = null;
|
628
1016
|
this.pendingCleanup = false;
|
629
1017
|
return Promise.all(waitOn);
|
630
|
-
}
|
631
|
-
|
1018
|
+
}
|
1019
|
+
}, {
|
1020
|
+
key: "cleanup",
|
1021
|
+
value: function cleanup() {
|
632
1022
|
var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
633
|
-
|
634
1023
|
this.pendingCleanup = true;
|
1024
|
+
|
635
1025
|
this._tryCleanup(resetStats);
|
636
|
-
}
|
637
|
-
|
1026
|
+
}
|
1027
|
+
}, {
|
1028
|
+
key: "_tryCleanup",
|
1029
|
+
value: function _tryCleanup() {
|
1030
|
+
var _this7 = this;
|
1031
|
+
|
638
1032
|
var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
639
1033
|
|
640
1034
|
if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {
|
641
|
-
var intentState =
|
642
|
-
return intentState.renderTasks.length !== 0 || intentState.
|
643
|
-
}
|
1035
|
+
var intentState = _this7.intentStates[intent];
|
1036
|
+
return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;
|
1037
|
+
})) {
|
644
1038
|
return;
|
645
1039
|
}
|
1040
|
+
|
646
1041
|
Object.keys(this.intentStates).forEach(function (intent) {
|
647
|
-
delete
|
648
|
-
}
|
1042
|
+
delete _this7.intentStates[intent];
|
1043
|
+
});
|
649
1044
|
this.objs.clear();
|
650
1045
|
this.annotationsPromise = null;
|
651
|
-
|
652
|
-
|
1046
|
+
|
1047
|
+
if (resetStats && this._stats instanceof _display_utils.StatTimer) {
|
1048
|
+
this._stats = new _display_utils.StatTimer();
|
653
1049
|
}
|
654
|
-
this.pendingCleanup = false;
|
655
|
-
},
|
656
1050
|
|
657
|
-
|
1051
|
+
this.pendingCleanup = false;
|
1052
|
+
}
|
1053
|
+
}, {
|
1054
|
+
key: "_startRenderPage",
|
1055
|
+
value: function _startRenderPage(transparency, intent) {
|
658
1056
|
var intentState = this.intentStates[intent];
|
1057
|
+
|
1058
|
+
if (!intentState) {
|
1059
|
+
return;
|
1060
|
+
}
|
1061
|
+
|
1062
|
+
this._stats.timeEnd('Page Request');
|
1063
|
+
|
659
1064
|
if (intentState.displayReadyCapability) {
|
660
1065
|
intentState.displayReadyCapability.resolve(transparency);
|
661
1066
|
}
|
662
|
-
}
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
for (i = 0, ii = operatorListChunk.length; i < ii; i++) {
|
1067
|
+
}
|
1068
|
+
}, {
|
1069
|
+
key: "_renderPageChunk",
|
1070
|
+
value: function _renderPageChunk(operatorListChunk, intentState) {
|
1071
|
+
for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {
|
667
1072
|
intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
|
668
1073
|
intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
|
669
1074
|
}
|
1075
|
+
|
670
1076
|
intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
|
671
|
-
|
672
|
-
|
1077
|
+
|
1078
|
+
for (var _i = 0; _i < intentState.renderTasks.length; _i++) {
|
1079
|
+
intentState.renderTasks[_i].operatorListChanged();
|
673
1080
|
}
|
1081
|
+
|
674
1082
|
if (operatorListChunk.lastChunk) {
|
675
|
-
intentState.receivingOperatorList = false;
|
676
1083
|
this._tryCleanup();
|
677
1084
|
}
|
678
|
-
},
|
679
|
-
get stats() {
|
680
|
-
return this._stats instanceof _dom_utils.StatTimer ? this._stats : null;
|
681
1085
|
}
|
682
|
-
}
|
1086
|
+
}, {
|
1087
|
+
key: "_pumpOperatorList",
|
1088
|
+
value: function _pumpOperatorList(args) {
|
1089
|
+
var _this8 = this;
|
1090
|
+
|
1091
|
+
(0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.');
|
1092
|
+
|
1093
|
+
var readableStream = this._transport.messageHandler.sendWithStream('GetOperatorList', args);
|
1094
|
+
|
1095
|
+
var reader = readableStream.getReader();
|
1096
|
+
var intentState = this.intentStates[args.intent];
|
1097
|
+
intentState.streamReader = reader;
|
1098
|
+
|
1099
|
+
var pump = function pump() {
|
1100
|
+
reader.read().then(function (_ref6) {
|
1101
|
+
var value = _ref6.value,
|
1102
|
+
done = _ref6.done;
|
1103
|
+
|
1104
|
+
if (done) {
|
1105
|
+
intentState.streamReader = null;
|
1106
|
+
return;
|
1107
|
+
}
|
1108
|
+
|
1109
|
+
if (_this8._transport.destroyed) {
|
1110
|
+
return;
|
1111
|
+
}
|
1112
|
+
|
1113
|
+
_this8._renderPageChunk(value, intentState);
|
1114
|
+
|
1115
|
+
pump();
|
1116
|
+
}, function (reason) {
|
1117
|
+
intentState.streamReader = null;
|
1118
|
+
|
1119
|
+
if (_this8._transport.destroyed) {
|
1120
|
+
return;
|
1121
|
+
}
|
1122
|
+
|
1123
|
+
if (intentState.operatorList) {
|
1124
|
+
intentState.operatorList.lastChunk = true;
|
1125
|
+
|
1126
|
+
for (var i = 0; i < intentState.renderTasks.length; i++) {
|
1127
|
+
intentState.renderTasks[i].operatorListChanged();
|
1128
|
+
}
|
1129
|
+
|
1130
|
+
_this8._tryCleanup();
|
1131
|
+
}
|
1132
|
+
|
1133
|
+
if (intentState.displayReadyCapability) {
|
1134
|
+
intentState.displayReadyCapability.reject(reason);
|
1135
|
+
} else if (intentState.opListReadCapability) {
|
1136
|
+
intentState.opListReadCapability.reject(reason);
|
1137
|
+
} else {
|
1138
|
+
throw reason;
|
1139
|
+
}
|
1140
|
+
});
|
1141
|
+
};
|
1142
|
+
|
1143
|
+
pump();
|
1144
|
+
}
|
1145
|
+
}, {
|
1146
|
+
key: "_abortOperatorList",
|
1147
|
+
value: function _abortOperatorList(_ref7) {
|
1148
|
+
var _this9 = this;
|
1149
|
+
|
1150
|
+
var intentState = _ref7.intentState,
|
1151
|
+
reason = _ref7.reason,
|
1152
|
+
_ref7$force = _ref7.force,
|
1153
|
+
force = _ref7$force === void 0 ? false : _ref7$force;
|
1154
|
+
(0, _util.assert)(reason instanceof Error, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.');
|
1155
|
+
|
1156
|
+
if (!intentState.streamReader) {
|
1157
|
+
return;
|
1158
|
+
}
|
1159
|
+
|
1160
|
+
if (!force) {
|
1161
|
+
if (intentState.renderTasks.length !== 0) {
|
1162
|
+
return;
|
1163
|
+
}
|
1164
|
+
|
1165
|
+
if (reason instanceof _display_utils.RenderingCancelledException) {
|
1166
|
+
intentState.streamReaderCancelTimeout = setTimeout(function () {
|
1167
|
+
_this9._abortOperatorList({
|
1168
|
+
intentState: intentState,
|
1169
|
+
reason: reason,
|
1170
|
+
force: true
|
1171
|
+
});
|
1172
|
+
|
1173
|
+
intentState.streamReaderCancelTimeout = null;
|
1174
|
+
}, RENDERING_CANCELLED_TIMEOUT);
|
1175
|
+
return;
|
1176
|
+
}
|
1177
|
+
}
|
1178
|
+
|
1179
|
+
intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));
|
1180
|
+
intentState.streamReader = null;
|
1181
|
+
|
1182
|
+
if (this._transport.destroyed) {
|
1183
|
+
return;
|
1184
|
+
}
|
1185
|
+
|
1186
|
+
Object.keys(this.intentStates).some(function (intent) {
|
1187
|
+
if (_this9.intentStates[intent] === intentState) {
|
1188
|
+
delete _this9.intentStates[intent];
|
1189
|
+
return true;
|
1190
|
+
}
|
1191
|
+
|
1192
|
+
return false;
|
1193
|
+
});
|
1194
|
+
this.cleanup();
|
1195
|
+
}
|
1196
|
+
}, {
|
1197
|
+
key: "pageNumber",
|
1198
|
+
get: function get() {
|
1199
|
+
return this.pageIndex + 1;
|
1200
|
+
}
|
1201
|
+
}, {
|
1202
|
+
key: "rotate",
|
1203
|
+
get: function get() {
|
1204
|
+
return this._pageInfo.rotate;
|
1205
|
+
}
|
1206
|
+
}, {
|
1207
|
+
key: "ref",
|
1208
|
+
get: function get() {
|
1209
|
+
return this._pageInfo.ref;
|
1210
|
+
}
|
1211
|
+
}, {
|
1212
|
+
key: "userUnit",
|
1213
|
+
get: function get() {
|
1214
|
+
return this._pageInfo.userUnit;
|
1215
|
+
}
|
1216
|
+
}, {
|
1217
|
+
key: "view",
|
1218
|
+
get: function get() {
|
1219
|
+
return this._pageInfo.view;
|
1220
|
+
}
|
1221
|
+
}, {
|
1222
|
+
key: "stats",
|
1223
|
+
get: function get() {
|
1224
|
+
return this._stats instanceof _display_utils.StatTimer ? this._stats : null;
|
1225
|
+
}
|
1226
|
+
}]);
|
1227
|
+
|
683
1228
|
return PDFPageProxy;
|
684
1229
|
}();
|
685
1230
|
|
686
|
-
|
1231
|
+
exports.PDFPageProxy = PDFPageProxy;
|
1232
|
+
|
1233
|
+
var LoopbackPort =
|
1234
|
+
/*#__PURE__*/
|
1235
|
+
function () {
|
687
1236
|
function LoopbackPort() {
|
688
1237
|
var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
689
1238
|
|
@@ -695,21 +1244,24 @@ var LoopbackPort = function () {
|
|
695
1244
|
}
|
696
1245
|
|
697
1246
|
_createClass(LoopbackPort, [{
|
698
|
-
key:
|
1247
|
+
key: "postMessage",
|
699
1248
|
value: function postMessage(obj, transfers) {
|
700
|
-
var
|
1249
|
+
var _this10 = this;
|
701
1250
|
|
702
1251
|
function cloneValue(value) {
|
703
|
-
if (
|
1252
|
+
if (_typeof(value) !== 'object' || value === null) {
|
704
1253
|
return value;
|
705
1254
|
}
|
1255
|
+
|
706
1256
|
if (cloned.has(value)) {
|
707
1257
|
return cloned.get(value);
|
708
1258
|
}
|
709
|
-
|
710
|
-
var buffer;
|
1259
|
+
|
1260
|
+
var buffer, result;
|
1261
|
+
|
711
1262
|
if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
|
712
1263
|
var transferable = transfers && transfers.includes(buffer);
|
1264
|
+
|
713
1265
|
if (value === buffer) {
|
714
1266
|
result = value;
|
715
1267
|
} else if (transferable) {
|
@@ -717,380 +1269,503 @@ var LoopbackPort = function () {
|
|
717
1269
|
} else {
|
718
1270
|
result = new value.constructor(value);
|
719
1271
|
}
|
1272
|
+
|
720
1273
|
cloned.set(value, result);
|
721
1274
|
return result;
|
722
1275
|
}
|
1276
|
+
|
723
1277
|
result = Array.isArray(value) ? [] : {};
|
724
1278
|
cloned.set(value, result);
|
1279
|
+
|
725
1280
|
for (var i in value) {
|
726
|
-
var desc,
|
1281
|
+
var desc = void 0,
|
727
1282
|
p = value;
|
1283
|
+
|
728
1284
|
while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
|
729
1285
|
p = Object.getPrototypeOf(p);
|
730
1286
|
}
|
731
|
-
|
1287
|
+
|
1288
|
+
if (typeof desc.value === 'undefined') {
|
1289
|
+
continue;
|
1290
|
+
}
|
1291
|
+
|
1292
|
+
if (typeof desc.value === 'function') {
|
1293
|
+
if (value.hasOwnProperty && value.hasOwnProperty(i)) {
|
1294
|
+
throw new Error("LoopbackPort.postMessage - cannot clone: ".concat(value[i]));
|
1295
|
+
}
|
1296
|
+
|
732
1297
|
continue;
|
733
1298
|
}
|
1299
|
+
|
734
1300
|
result[i] = cloneValue(desc.value);
|
735
1301
|
}
|
1302
|
+
|
736
1303
|
return result;
|
737
1304
|
}
|
1305
|
+
|
738
1306
|
if (!this._defer) {
|
739
1307
|
this._listeners.forEach(function (listener) {
|
740
|
-
listener.call(
|
741
|
-
|
1308
|
+
listener.call(_this10, {
|
1309
|
+
data: obj
|
1310
|
+
});
|
1311
|
+
});
|
1312
|
+
|
742
1313
|
return;
|
743
1314
|
}
|
1315
|
+
|
744
1316
|
var cloned = new WeakMap();
|
745
|
-
var e = {
|
1317
|
+
var e = {
|
1318
|
+
data: cloneValue(obj)
|
1319
|
+
};
|
1320
|
+
|
746
1321
|
this._deferred.then(function () {
|
747
|
-
|
748
|
-
listener.call(
|
749
|
-
}
|
1322
|
+
_this10._listeners.forEach(function (listener) {
|
1323
|
+
listener.call(_this10, e);
|
1324
|
+
});
|
750
1325
|
});
|
751
1326
|
}
|
752
1327
|
}, {
|
753
|
-
key:
|
1328
|
+
key: "addEventListener",
|
754
1329
|
value: function addEventListener(name, listener) {
|
755
1330
|
this._listeners.push(listener);
|
756
1331
|
}
|
757
1332
|
}, {
|
758
|
-
key:
|
1333
|
+
key: "removeEventListener",
|
759
1334
|
value: function removeEventListener(name, listener) {
|
760
1335
|
var i = this._listeners.indexOf(listener);
|
1336
|
+
|
761
1337
|
this._listeners.splice(i, 1);
|
762
1338
|
}
|
763
1339
|
}, {
|
764
|
-
key:
|
1340
|
+
key: "terminate",
|
765
1341
|
value: function terminate() {
|
766
|
-
this._listeners =
|
1342
|
+
this._listeners.length = 0;
|
767
1343
|
}
|
768
1344
|
}]);
|
769
1345
|
|
770
1346
|
return LoopbackPort;
|
771
1347
|
}();
|
772
1348
|
|
1349
|
+
exports.LoopbackPort = LoopbackPort;
|
1350
|
+
|
773
1351
|
var PDFWorker = function PDFWorkerClosure() {
|
1352
|
+
var pdfWorkerPorts = new WeakMap();
|
774
1353
|
var nextFakeWorkerId = 0;
|
775
|
-
|
1354
|
+
var fakeWorkerFilesLoadedCapability;
|
1355
|
+
|
1356
|
+
function _getWorkerSrc() {
|
776
1357
|
if (_worker_options.GlobalWorkerOptions.workerSrc) {
|
777
1358
|
return _worker_options.GlobalWorkerOptions.workerSrc;
|
778
1359
|
}
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
if (pdfjsFilePath) {
|
783
|
-
return pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
|
1360
|
+
|
1361
|
+
if (typeof fallbackWorkerSrc !== 'undefined') {
|
1362
|
+
return fallbackWorkerSrc;
|
784
1363
|
}
|
1364
|
+
|
785
1365
|
throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
|
786
1366
|
}
|
1367
|
+
|
787
1368
|
function getMainThreadWorkerMessageHandler() {
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
1369
|
+
try {
|
1370
|
+
if (typeof window !== 'undefined') {
|
1371
|
+
return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;
|
1372
|
+
}
|
1373
|
+
} catch (ex) {}
|
1374
|
+
|
1375
|
+
return null;
|
792
1376
|
}
|
793
|
-
|
1377
|
+
|
794
1378
|
function setupFakeWorkerGlobal() {
|
795
1379
|
if (fakeWorkerFilesLoadedCapability) {
|
796
1380
|
return fakeWorkerFilesLoadedCapability.promise;
|
797
1381
|
}
|
1382
|
+
|
798
1383
|
fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();
|
799
1384
|
var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
|
1385
|
+
|
800
1386
|
if (mainWorkerMessageHandler) {
|
801
1387
|
fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);
|
802
1388
|
return fakeWorkerFilesLoadedCapability.promise;
|
803
1389
|
}
|
804
|
-
|
805
|
-
|
806
|
-
|
1390
|
+
|
1391
|
+
var loader = fakeWorkerFilesLoader || function () {
|
1392
|
+
return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () {
|
1393
|
+
return window.pdfjsWorker.WorkerMessageHandler;
|
807
1394
|
});
|
808
1395
|
};
|
809
|
-
|
1396
|
+
|
1397
|
+
loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);
|
810
1398
|
return fakeWorkerFilesLoadedCapability.promise;
|
811
1399
|
}
|
1400
|
+
|
812
1401
|
function createCDNWrapper(url) {
|
813
1402
|
var wrapper = 'importScripts(\'' + url + '\');';
|
814
1403
|
return URL.createObjectURL(new Blob([wrapper]));
|
815
1404
|
}
|
816
|
-
var pdfWorkerPorts = new WeakMap();
|
817
|
-
function PDFWorker() {
|
818
|
-
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
819
|
-
_ref2$name = _ref2.name,
|
820
|
-
name = _ref2$name === undefined ? null : _ref2$name,
|
821
|
-
_ref2$port = _ref2.port,
|
822
|
-
port = _ref2$port === undefined ? null : _ref2$port,
|
823
|
-
_ref2$postMessageTran = _ref2.postMessageTransfers,
|
824
|
-
postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran,
|
825
|
-
_ref2$verbosity = _ref2.verbosity,
|
826
|
-
verbosity = _ref2$verbosity === undefined ? null : _ref2$verbosity;
|
827
|
-
|
828
|
-
if (port && pdfWorkerPorts.has(port)) {
|
829
|
-
throw new Error('Cannot use more than one PDFWorker per port');
|
830
|
-
}
|
831
|
-
this.name = name;
|
832
|
-
this.destroyed = false;
|
833
|
-
this.postMessageTransfers = postMessageTransfers !== false;
|
834
|
-
this.verbosity = (0, _util.isNum)(verbosity) ? verbosity : (0, _util.getVerbosityLevel)();
|
835
|
-
this._readyCapability = (0, _util.createPromiseCapability)();
|
836
|
-
this._port = null;
|
837
|
-
this._webWorker = null;
|
838
|
-
this._messageHandler = null;
|
839
|
-
if (port) {
|
840
|
-
pdfWorkerPorts.set(port, this);
|
841
|
-
this._initializeFromPort(port);
|
842
|
-
return;
|
843
|
-
}
|
844
|
-
this._initialize();
|
845
|
-
}
|
846
|
-
PDFWorker.prototype = {
|
847
|
-
get promise() {
|
848
|
-
return this._readyCapability.promise;
|
849
|
-
},
|
850
|
-
get port() {
|
851
|
-
return this._port;
|
852
|
-
},
|
853
|
-
get messageHandler() {
|
854
|
-
return this._messageHandler;
|
855
|
-
},
|
856
|
-
_initializeFromPort: function PDFWorker_initializeFromPort(port) {
|
857
|
-
this._port = port;
|
858
|
-
this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);
|
859
|
-
this._messageHandler.on('ready', function () {});
|
860
|
-
this._readyCapability.resolve();
|
861
|
-
},
|
862
|
-
_initialize: function PDFWorker_initialize() {
|
863
|
-
var _this6 = this;
|
864
1405
|
|
865
|
-
|
866
|
-
|
867
|
-
|
868
|
-
|
869
|
-
|
870
|
-
|
871
|
-
|
872
|
-
|
873
|
-
|
874
|
-
|
875
|
-
|
876
|
-
worker.terminate();
|
877
|
-
if (_this6.destroyed) {
|
878
|
-
_this6._readyCapability.reject(new Error('Worker was destroyed'));
|
879
|
-
} else {
|
880
|
-
_this6._setupFakeWorker();
|
881
|
-
}
|
882
|
-
};
|
883
|
-
var onWorkerError = function onWorkerError() {
|
884
|
-
if (!_this6._webWorker) {
|
885
|
-
terminateEarly();
|
886
|
-
}
|
887
|
-
};
|
888
|
-
worker.addEventListener('error', onWorkerError);
|
889
|
-
messageHandler.on('test', function (data) {
|
890
|
-
worker.removeEventListener('error', onWorkerError);
|
891
|
-
if (_this6.destroyed) {
|
892
|
-
terminateEarly();
|
893
|
-
return;
|
894
|
-
}
|
895
|
-
var supportTypedArray = data && data.supportTypedArray;
|
896
|
-
if (supportTypedArray) {
|
897
|
-
_this6._messageHandler = messageHandler;
|
898
|
-
_this6._port = worker;
|
899
|
-
_this6._webWorker = worker;
|
900
|
-
if (!data.supportTransfers) {
|
901
|
-
_this6.postMessageTransfers = false;
|
902
|
-
}
|
903
|
-
_this6._readyCapability.resolve();
|
904
|
-
messageHandler.send('configure', { verbosity: _this6.verbosity });
|
905
|
-
} else {
|
906
|
-
_this6._setupFakeWorker();
|
907
|
-
messageHandler.destroy();
|
908
|
-
worker.terminate();
|
909
|
-
}
|
910
|
-
});
|
911
|
-
messageHandler.on('ready', function (data) {
|
912
|
-
worker.removeEventListener('error', onWorkerError);
|
913
|
-
if (_this6.destroyed) {
|
914
|
-
terminateEarly();
|
915
|
-
return;
|
916
|
-
}
|
917
|
-
try {
|
918
|
-
sendTest();
|
919
|
-
} catch (e) {
|
920
|
-
_this6._setupFakeWorker();
|
921
|
-
}
|
922
|
-
});
|
923
|
-
var sendTest = function sendTest() {
|
924
|
-
var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]);
|
925
|
-
try {
|
926
|
-
messageHandler.send('test', testObj, [testObj.buffer]);
|
927
|
-
} catch (ex) {
|
928
|
-
(0, _util.info)('Cannot use postMessage transfers');
|
929
|
-
testObj[0] = 0;
|
930
|
-
messageHandler.send('test', testObj);
|
931
|
-
}
|
932
|
-
};
|
933
|
-
sendTest();
|
934
|
-
return;
|
935
|
-
} catch (e) {
|
936
|
-
(0, _util.info)('The worker has been disabled.');
|
937
|
-
}
|
938
|
-
}
|
939
|
-
this._setupFakeWorker();
|
940
|
-
},
|
941
|
-
_setupFakeWorker: function PDFWorker_setupFakeWorker() {
|
942
|
-
var _this7 = this;
|
1406
|
+
var PDFWorker =
|
1407
|
+
/*#__PURE__*/
|
1408
|
+
function () {
|
1409
|
+
function PDFWorker() {
|
1410
|
+
var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
1411
|
+
_ref8$name = _ref8.name,
|
1412
|
+
name = _ref8$name === void 0 ? null : _ref8$name,
|
1413
|
+
_ref8$port = _ref8.port,
|
1414
|
+
port = _ref8$port === void 0 ? null : _ref8$port,
|
1415
|
+
_ref8$verbosity = _ref8.verbosity,
|
1416
|
+
verbosity = _ref8$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref8$verbosity;
|
943
1417
|
|
944
|
-
|
945
|
-
|
946
|
-
|
947
|
-
|
948
|
-
setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
|
949
|
-
if (_this7.destroyed) {
|
950
|
-
_this7._readyCapability.reject(new Error('Worker was destroyed'));
|
951
|
-
return;
|
952
|
-
}
|
953
|
-
var isTypedArraysPresent = Uint8Array !== Float32Array;
|
954
|
-
var port = new LoopbackPort(isTypedArraysPresent);
|
955
|
-
_this7._port = port;
|
956
|
-
var id = 'fake' + nextFakeWorkerId++;
|
957
|
-
var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);
|
958
|
-
WorkerMessageHandler.setup(workerHandler, port);
|
959
|
-
var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);
|
960
|
-
_this7._messageHandler = messageHandler;
|
961
|
-
_this7._readyCapability.resolve();
|
962
|
-
});
|
963
|
-
},
|
964
|
-
destroy: function PDFWorker_destroy() {
|
965
|
-
this.destroyed = true;
|
966
|
-
if (this._webWorker) {
|
967
|
-
this._webWorker.terminate();
|
968
|
-
this._webWorker = null;
|
1418
|
+
_classCallCheck(this, PDFWorker);
|
1419
|
+
|
1420
|
+
if (port && pdfWorkerPorts.has(port)) {
|
1421
|
+
throw new Error('Cannot use more than one PDFWorker per port');
|
969
1422
|
}
|
970
|
-
|
1423
|
+
|
1424
|
+
this.name = name;
|
1425
|
+
this.destroyed = false;
|
1426
|
+
this.postMessageTransfers = true;
|
1427
|
+
this.verbosity = verbosity;
|
1428
|
+
this._readyCapability = (0, _util.createPromiseCapability)();
|
971
1429
|
this._port = null;
|
972
|
-
|
973
|
-
|
974
|
-
|
1430
|
+
this._webWorker = null;
|
1431
|
+
this._messageHandler = null;
|
1432
|
+
|
1433
|
+
if (port) {
|
1434
|
+
pdfWorkerPorts.set(port, this);
|
1435
|
+
|
1436
|
+
this._initializeFromPort(port);
|
1437
|
+
|
1438
|
+
return;
|
975
1439
|
}
|
1440
|
+
|
1441
|
+
this._initialize();
|
976
1442
|
}
|
977
|
-
};
|
978
|
-
PDFWorker.fromPort = function (params) {
|
979
|
-
if (pdfWorkerPorts.has(params.port)) {
|
980
|
-
return pdfWorkerPorts.get(params.port);
|
981
|
-
}
|
982
|
-
return new PDFWorker(params);
|
983
|
-
};
|
984
|
-
PDFWorker.getWorkerSrc = function () {
|
985
|
-
return getWorkerSrc();
|
986
|
-
};
|
987
|
-
return PDFWorker;
|
988
|
-
}();
|
989
|
-
var WorkerTransport = function WorkerTransportClosure() {
|
990
|
-
function WorkerTransport(messageHandler, loadingTask, networkStream, params, CMapReaderFactory) {
|
991
|
-
this.messageHandler = messageHandler;
|
992
|
-
this.loadingTask = loadingTask;
|
993
|
-
this.commonObjs = new PDFObjects();
|
994
|
-
this.fontLoader = new _font_loader.FontLoader(loadingTask.docId);
|
995
|
-
this._params = params;
|
996
|
-
this.CMapReaderFactory = new CMapReaderFactory({
|
997
|
-
baseUrl: params.cMapUrl,
|
998
|
-
isCompressed: params.cMapPacked
|
999
|
-
});
|
1000
|
-
this.destroyed = false;
|
1001
|
-
this.destroyCapability = null;
|
1002
|
-
this._passwordCapability = null;
|
1003
|
-
this._networkStream = networkStream;
|
1004
|
-
this._fullReader = null;
|
1005
|
-
this._lastProgress = null;
|
1006
|
-
this.pageCache = [];
|
1007
|
-
this.pagePromises = [];
|
1008
|
-
this.downloadInfoCapability = (0, _util.createPromiseCapability)();
|
1009
|
-
this.setupMessageHandler();
|
1010
|
-
}
|
1011
|
-
WorkerTransport.prototype = {
|
1012
|
-
destroy: function WorkerTransport_destroy() {
|
1013
|
-
var _this8 = this;
|
1014
1443
|
|
1015
|
-
|
1016
|
-
|
1444
|
+
_createClass(PDFWorker, [{
|
1445
|
+
key: "_initializeFromPort",
|
1446
|
+
value: function _initializeFromPort(port) {
|
1447
|
+
this._port = port;
|
1448
|
+
this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);
|
1449
|
+
|
1450
|
+
this._messageHandler.on('ready', function () {});
|
1451
|
+
|
1452
|
+
this._readyCapability.resolve();
|
1017
1453
|
}
|
1018
|
-
|
1454
|
+
}, {
|
1455
|
+
key: "_initialize",
|
1456
|
+
value: function _initialize() {
|
1457
|
+
var _this11 = this;
|
1458
|
+
|
1459
|
+
if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
|
1460
|
+
var workerSrc = _getWorkerSrc();
|
1461
|
+
|
1462
|
+
try {
|
1463
|
+
if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
|
1464
|
+
workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);
|
1465
|
+
}
|
1466
|
+
|
1467
|
+
var worker = new Worker(workerSrc);
|
1468
|
+
var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);
|
1469
|
+
|
1470
|
+
var terminateEarly = function terminateEarly() {
|
1471
|
+
worker.removeEventListener('error', onWorkerError);
|
1472
|
+
messageHandler.destroy();
|
1473
|
+
worker.terminate();
|
1474
|
+
|
1475
|
+
if (_this11.destroyed) {
|
1476
|
+
_this11._readyCapability.reject(new Error('Worker was destroyed'));
|
1477
|
+
} else {
|
1478
|
+
_this11._setupFakeWorker();
|
1479
|
+
}
|
1480
|
+
};
|
1481
|
+
|
1482
|
+
var onWorkerError = function onWorkerError() {
|
1483
|
+
if (!_this11._webWorker) {
|
1484
|
+
terminateEarly();
|
1485
|
+
}
|
1486
|
+
};
|
1487
|
+
|
1488
|
+
worker.addEventListener('error', onWorkerError);
|
1489
|
+
messageHandler.on('test', function (data) {
|
1490
|
+
worker.removeEventListener('error', onWorkerError);
|
1491
|
+
|
1492
|
+
if (_this11.destroyed) {
|
1493
|
+
terminateEarly();
|
1494
|
+
return;
|
1495
|
+
}
|
1496
|
+
|
1497
|
+
if (data) {
|
1498
|
+
_this11._messageHandler = messageHandler;
|
1499
|
+
_this11._port = worker;
|
1500
|
+
_this11._webWorker = worker;
|
1501
|
+
|
1502
|
+
if (!data.supportTransfers) {
|
1503
|
+
_this11.postMessageTransfers = false;
|
1504
|
+
}
|
1505
|
+
|
1506
|
+
_this11._readyCapability.resolve();
|
1507
|
+
|
1508
|
+
messageHandler.send('configure', {
|
1509
|
+
verbosity: _this11.verbosity
|
1510
|
+
});
|
1511
|
+
} else {
|
1512
|
+
_this11._setupFakeWorker();
|
1513
|
+
|
1514
|
+
messageHandler.destroy();
|
1515
|
+
worker.terminate();
|
1516
|
+
}
|
1517
|
+
});
|
1518
|
+
messageHandler.on('ready', function (data) {
|
1519
|
+
worker.removeEventListener('error', onWorkerError);
|
1520
|
+
|
1521
|
+
if (_this11.destroyed) {
|
1522
|
+
terminateEarly();
|
1523
|
+
return;
|
1524
|
+
}
|
1525
|
+
|
1526
|
+
try {
|
1527
|
+
sendTest();
|
1528
|
+
} catch (e) {
|
1529
|
+
_this11._setupFakeWorker();
|
1530
|
+
}
|
1531
|
+
});
|
1532
|
+
|
1533
|
+
var sendTest = function sendTest() {
|
1534
|
+
var testObj = new Uint8Array([_this11.postMessageTransfers ? 255 : 0]);
|
1535
|
+
|
1536
|
+
try {
|
1537
|
+
messageHandler.send('test', testObj, [testObj.buffer]);
|
1538
|
+
} catch (ex) {
|
1539
|
+
(0, _util.warn)('Cannot use postMessage transfers.');
|
1540
|
+
testObj[0] = 0;
|
1541
|
+
messageHandler.send('test', testObj);
|
1542
|
+
}
|
1543
|
+
};
|
1544
|
+
|
1545
|
+
sendTest();
|
1546
|
+
return;
|
1547
|
+
} catch (e) {
|
1548
|
+
(0, _util.info)('The worker has been disabled.');
|
1549
|
+
}
|
1550
|
+
}
|
1551
|
+
|
1552
|
+
this._setupFakeWorker();
|
1553
|
+
}
|
1554
|
+
}, {
|
1555
|
+
key: "_setupFakeWorker",
|
1556
|
+
value: function _setupFakeWorker() {
|
1557
|
+
var _this12 = this;
|
1558
|
+
|
1559
|
+
if (!isWorkerDisabled) {
|
1560
|
+
(0, _util.warn)('Setting up fake worker.');
|
1561
|
+
isWorkerDisabled = true;
|
1562
|
+
}
|
1563
|
+
|
1564
|
+
setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
|
1565
|
+
if (_this12.destroyed) {
|
1566
|
+
_this12._readyCapability.reject(new Error('Worker was destroyed'));
|
1567
|
+
|
1568
|
+
return;
|
1569
|
+
}
|
1570
|
+
|
1571
|
+
var port = new LoopbackPort();
|
1572
|
+
_this12._port = port;
|
1573
|
+
var id = 'fake' + nextFakeWorkerId++;
|
1574
|
+
var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);
|
1575
|
+
WorkerMessageHandler.setup(workerHandler, port);
|
1576
|
+
var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);
|
1577
|
+
_this12._messageHandler = messageHandler;
|
1578
|
+
|
1579
|
+
_this12._readyCapability.resolve();
|
1580
|
+
})["catch"](function (reason) {
|
1581
|
+
_this12._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\".")));
|
1582
|
+
});
|
1583
|
+
}
|
1584
|
+
}, {
|
1585
|
+
key: "destroy",
|
1586
|
+
value: function destroy() {
|
1587
|
+
this.destroyed = true;
|
1588
|
+
|
1589
|
+
if (this._webWorker) {
|
1590
|
+
this._webWorker.terminate();
|
1591
|
+
|
1592
|
+
this._webWorker = null;
|
1593
|
+
}
|
1594
|
+
|
1595
|
+
pdfWorkerPorts["delete"](this._port);
|
1596
|
+
this._port = null;
|
1597
|
+
|
1598
|
+
if (this._messageHandler) {
|
1599
|
+
this._messageHandler.destroy();
|
1600
|
+
|
1601
|
+
this._messageHandler = null;
|
1602
|
+
}
|
1603
|
+
}
|
1604
|
+
}, {
|
1605
|
+
key: "promise",
|
1606
|
+
get: function get() {
|
1607
|
+
return this._readyCapability.promise;
|
1608
|
+
}
|
1609
|
+
}, {
|
1610
|
+
key: "port",
|
1611
|
+
get: function get() {
|
1612
|
+
return this._port;
|
1613
|
+
}
|
1614
|
+
}, {
|
1615
|
+
key: "messageHandler",
|
1616
|
+
get: function get() {
|
1617
|
+
return this._messageHandler;
|
1618
|
+
}
|
1619
|
+
}], [{
|
1620
|
+
key: "fromPort",
|
1621
|
+
value: function fromPort(params) {
|
1622
|
+
if (!params || !params.port) {
|
1623
|
+
throw new Error('PDFWorker.fromPort - invalid method signature.');
|
1624
|
+
}
|
1625
|
+
|
1626
|
+
if (pdfWorkerPorts.has(params.port)) {
|
1627
|
+
return pdfWorkerPorts.get(params.port);
|
1628
|
+
}
|
1629
|
+
|
1630
|
+
return new PDFWorker(params);
|
1631
|
+
}
|
1632
|
+
}, {
|
1633
|
+
key: "getWorkerSrc",
|
1634
|
+
value: function getWorkerSrc() {
|
1635
|
+
return _getWorkerSrc();
|
1636
|
+
}
|
1637
|
+
}]);
|
1638
|
+
|
1639
|
+
return PDFWorker;
|
1640
|
+
}();
|
1641
|
+
|
1642
|
+
return PDFWorker;
|
1643
|
+
}();
|
1644
|
+
|
1645
|
+
exports.PDFWorker = PDFWorker;
|
1646
|
+
|
1647
|
+
var WorkerTransport =
|
1648
|
+
/*#__PURE__*/
|
1649
|
+
function () {
|
1650
|
+
function WorkerTransport(messageHandler, loadingTask, networkStream, params) {
|
1651
|
+
_classCallCheck(this, WorkerTransport);
|
1652
|
+
|
1653
|
+
this.messageHandler = messageHandler;
|
1654
|
+
this.loadingTask = loadingTask;
|
1655
|
+
this.commonObjs = new PDFObjects();
|
1656
|
+
this.fontLoader = new _font_loader.FontLoader({
|
1657
|
+
docId: loadingTask.docId,
|
1658
|
+
onUnsupportedFeature: this._onUnsupportedFeature.bind(this)
|
1659
|
+
});
|
1660
|
+
this._params = params;
|
1661
|
+
this.CMapReaderFactory = new params.CMapReaderFactory({
|
1662
|
+
baseUrl: params.cMapUrl,
|
1663
|
+
isCompressed: params.cMapPacked
|
1664
|
+
});
|
1665
|
+
this.destroyed = false;
|
1666
|
+
this.destroyCapability = null;
|
1667
|
+
this._passwordCapability = null;
|
1668
|
+
this._networkStream = networkStream;
|
1669
|
+
this._fullReader = null;
|
1670
|
+
this._lastProgress = null;
|
1671
|
+
this.pageCache = [];
|
1672
|
+
this.pagePromises = [];
|
1673
|
+
this.downloadInfoCapability = (0, _util.createPromiseCapability)();
|
1674
|
+
this.setupMessageHandler();
|
1675
|
+
}
|
1676
|
+
|
1677
|
+
_createClass(WorkerTransport, [{
|
1678
|
+
key: "destroy",
|
1679
|
+
value: function destroy() {
|
1680
|
+
var _this13 = this;
|
1681
|
+
|
1682
|
+
if (this.destroyCapability) {
|
1683
|
+
return this.destroyCapability.promise;
|
1684
|
+
}
|
1685
|
+
|
1686
|
+
this.destroyed = true;
|
1019
1687
|
this.destroyCapability = (0, _util.createPromiseCapability)();
|
1688
|
+
|
1020
1689
|
if (this._passwordCapability) {
|
1021
1690
|
this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));
|
1022
1691
|
}
|
1692
|
+
|
1023
1693
|
var waitOn = [];
|
1024
1694
|
this.pageCache.forEach(function (page) {
|
1025
1695
|
if (page) {
|
1026
1696
|
waitOn.push(page._destroy());
|
1027
1697
|
}
|
1028
1698
|
});
|
1029
|
-
this.pageCache =
|
1030
|
-
this.pagePromises =
|
1699
|
+
this.pageCache.length = 0;
|
1700
|
+
this.pagePromises.length = 0;
|
1031
1701
|
var terminated = this.messageHandler.sendWithPromise('Terminate', null);
|
1032
1702
|
waitOn.push(terminated);
|
1033
1703
|
Promise.all(waitOn).then(function () {
|
1034
|
-
|
1035
|
-
|
1036
|
-
|
1704
|
+
_this13.fontLoader.clear();
|
1705
|
+
|
1706
|
+
if (_this13._networkStream) {
|
1707
|
+
_this13._networkStream.cancelAllRequests(new _util.AbortException('Worker was terminated.'));
|
1037
1708
|
}
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1709
|
+
|
1710
|
+
if (_this13.messageHandler) {
|
1711
|
+
_this13.messageHandler.destroy();
|
1712
|
+
|
1713
|
+
_this13.messageHandler = null;
|
1041
1714
|
}
|
1042
|
-
|
1715
|
+
|
1716
|
+
_this13.destroyCapability.resolve();
|
1043
1717
|
}, this.destroyCapability.reject);
|
1044
1718
|
return this.destroyCapability.promise;
|
1045
|
-
}
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1719
|
+
}
|
1720
|
+
}, {
|
1721
|
+
key: "setupMessageHandler",
|
1722
|
+
value: function setupMessageHandler() {
|
1723
|
+
var _this14 = this;
|
1724
|
+
|
1725
|
+
var messageHandler = this.messageHandler,
|
1726
|
+
loadingTask = this.loadingTask;
|
1049
1727
|
messageHandler.on('GetReader', function (data, sink) {
|
1050
|
-
|
1728
|
+
(0, _util.assert)(_this14._networkStream);
|
1729
|
+
_this14._fullReader = _this14._networkStream.getFullReader();
|
1051
1730
|
|
1052
|
-
|
1053
|
-
|
1054
|
-
this._fullReader.onProgress = function (evt) {
|
1055
|
-
_this9._lastProgress = {
|
1731
|
+
_this14._fullReader.onProgress = function (evt) {
|
1732
|
+
_this14._lastProgress = {
|
1056
1733
|
loaded: evt.loaded,
|
1057
1734
|
total: evt.total
|
1058
1735
|
};
|
1059
1736
|
};
|
1737
|
+
|
1060
1738
|
sink.onPull = function () {
|
1061
|
-
|
1062
|
-
var value =
|
1063
|
-
done =
|
1739
|
+
_this14._fullReader.read().then(function (_ref9) {
|
1740
|
+
var value = _ref9.value,
|
1741
|
+
done = _ref9.done;
|
1064
1742
|
|
1065
1743
|
if (done) {
|
1066
1744
|
sink.close();
|
1067
1745
|
return;
|
1068
1746
|
}
|
1747
|
+
|
1069
1748
|
(0, _util.assert)((0, _util.isArrayBuffer)(value));
|
1070
1749
|
sink.enqueue(new Uint8Array(value), 1, [value]);
|
1071
|
-
})
|
1750
|
+
})["catch"](function (reason) {
|
1072
1751
|
sink.error(reason);
|
1073
1752
|
});
|
1074
1753
|
};
|
1754
|
+
|
1075
1755
|
sink.onCancel = function (reason) {
|
1076
|
-
|
1756
|
+
_this14._fullReader.cancel(reason);
|
1077
1757
|
};
|
1078
|
-
}
|
1758
|
+
});
|
1079
1759
|
messageHandler.on('ReaderHeadersReady', function (data) {
|
1080
|
-
var _this10 = this;
|
1081
|
-
|
1082
1760
|
var headersCapability = (0, _util.createPromiseCapability)();
|
1083
|
-
var fullReader =
|
1761
|
+
var fullReader = _this14._fullReader;
|
1084
1762
|
fullReader.headersReady.then(function () {
|
1085
1763
|
if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
|
1086
|
-
if (
|
1087
|
-
|
1088
|
-
if (_loadingTask.onProgress) {
|
1089
|
-
_loadingTask.onProgress(_this10._lastProgress);
|
1090
|
-
}
|
1764
|
+
if (_this14._lastProgress && loadingTask.onProgress) {
|
1765
|
+
loadingTask.onProgress(_this14._lastProgress);
|
1091
1766
|
}
|
1767
|
+
|
1092
1768
|
fullReader.onProgress = function (evt) {
|
1093
|
-
var loadingTask = _this10.loadingTask;
|
1094
1769
|
if (loadingTask.onProgress) {
|
1095
1770
|
loadingTask.onProgress({
|
1096
1771
|
loaded: evt.loaded,
|
@@ -1099,6 +1774,7 @@ var WorkerTransport = function WorkerTransportClosure() {
|
|
1099
1774
|
}
|
1100
1775
|
};
|
1101
1776
|
}
|
1777
|
+
|
1102
1778
|
headersCapability.resolve({
|
1103
1779
|
isStreamingSupported: fullReader.isStreamingSupported,
|
1104
1780
|
isRangeSupported: fullReader.isRangeSupported,
|
@@ -1106,574 +1782,814 @@ var WorkerTransport = function WorkerTransportClosure() {
|
|
1106
1782
|
});
|
1107
1783
|
}, headersCapability.reject);
|
1108
1784
|
return headersCapability.promise;
|
1109
|
-
}
|
1785
|
+
});
|
1110
1786
|
messageHandler.on('GetRangeReader', function (data, sink) {
|
1111
|
-
(0, _util.assert)(
|
1112
|
-
|
1787
|
+
(0, _util.assert)(_this14._networkStream);
|
1788
|
+
|
1789
|
+
var rangeReader = _this14._networkStream.getRangeReader(data.begin, data.end);
|
1790
|
+
|
1791
|
+
if (!rangeReader) {
|
1792
|
+
sink.close();
|
1793
|
+
return;
|
1794
|
+
}
|
1795
|
+
|
1113
1796
|
sink.onPull = function () {
|
1114
|
-
|
1115
|
-
var value =
|
1116
|
-
done =
|
1797
|
+
rangeReader.read().then(function (_ref10) {
|
1798
|
+
var value = _ref10.value,
|
1799
|
+
done = _ref10.done;
|
1117
1800
|
|
1118
1801
|
if (done) {
|
1119
1802
|
sink.close();
|
1120
1803
|
return;
|
1121
1804
|
}
|
1805
|
+
|
1122
1806
|
(0, _util.assert)((0, _util.isArrayBuffer)(value));
|
1123
1807
|
sink.enqueue(new Uint8Array(value), 1, [value]);
|
1124
|
-
})
|
1808
|
+
})["catch"](function (reason) {
|
1125
1809
|
sink.error(reason);
|
1126
1810
|
});
|
1127
1811
|
};
|
1812
|
+
|
1128
1813
|
sink.onCancel = function (reason) {
|
1129
|
-
|
1814
|
+
rangeReader.cancel(reason);
|
1130
1815
|
};
|
1131
|
-
}
|
1132
|
-
messageHandler.on('GetDoc', function
|
1133
|
-
var pdfInfo =
|
1134
|
-
|
1135
|
-
|
1136
|
-
|
1137
|
-
|
1138
|
-
|
1139
|
-
|
1140
|
-
}, this);
|
1141
|
-
messageHandler.on('PasswordRequest', function transportPasswordRequest(exception) {
|
1142
|
-
var _this11 = this;
|
1816
|
+
});
|
1817
|
+
messageHandler.on('GetDoc', function (_ref11) {
|
1818
|
+
var pdfInfo = _ref11.pdfInfo;
|
1819
|
+
_this14._numPages = pdfInfo.numPages;
|
1820
|
+
|
1821
|
+
loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, _this14));
|
1822
|
+
});
|
1823
|
+
messageHandler.on('PasswordRequest', function (exception) {
|
1824
|
+
_this14._passwordCapability = (0, _util.createPromiseCapability)();
|
1143
1825
|
|
1144
|
-
this._passwordCapability = (0, _util.createPromiseCapability)();
|
1145
1826
|
if (loadingTask.onPassword) {
|
1146
1827
|
var updatePassword = function updatePassword(password) {
|
1147
|
-
|
1828
|
+
_this14._passwordCapability.resolve({
|
1829
|
+
password: password
|
1830
|
+
});
|
1148
1831
|
};
|
1832
|
+
|
1149
1833
|
try {
|
1150
1834
|
loadingTask.onPassword(updatePassword, exception.code);
|
1151
1835
|
} catch (ex) {
|
1152
|
-
|
1836
|
+
_this14._passwordCapability.reject(ex);
|
1153
1837
|
}
|
1154
1838
|
} else {
|
1155
|
-
|
1839
|
+
_this14._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
|
1156
1840
|
}
|
1157
|
-
|
1158
|
-
|
1159
|
-
|
1841
|
+
|
1842
|
+
return _this14._passwordCapability.promise;
|
1843
|
+
});
|
1844
|
+
messageHandler.on('PasswordException', function (exception) {
|
1160
1845
|
loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));
|
1161
|
-
}
|
1162
|
-
messageHandler.on('InvalidPDF', function
|
1163
|
-
|
1164
|
-
}
|
1165
|
-
messageHandler.on('MissingPDF', function
|
1166
|
-
|
1167
|
-
}
|
1168
|
-
messageHandler.on('UnexpectedResponse', function
|
1169
|
-
|
1170
|
-
}
|
1171
|
-
messageHandler.on('UnknownError', function
|
1172
|
-
|
1173
|
-
}
|
1174
|
-
messageHandler.on('DataLoaded', function
|
1175
|
-
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
|
1180
|
-
return;
|
1846
|
+
});
|
1847
|
+
messageHandler.on('InvalidPDF', function (exception) {
|
1848
|
+
loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));
|
1849
|
+
});
|
1850
|
+
messageHandler.on('MissingPDF', function (exception) {
|
1851
|
+
loadingTask._capability.reject(new _util.MissingPDFException(exception.message));
|
1852
|
+
});
|
1853
|
+
messageHandler.on('UnexpectedResponse', function (exception) {
|
1854
|
+
loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));
|
1855
|
+
});
|
1856
|
+
messageHandler.on('UnknownError', function (exception) {
|
1857
|
+
loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));
|
1858
|
+
});
|
1859
|
+
messageHandler.on('DataLoaded', function (data) {
|
1860
|
+
if (loadingTask.onProgress) {
|
1861
|
+
loadingTask.onProgress({
|
1862
|
+
loaded: data.length,
|
1863
|
+
total: data.length
|
1864
|
+
});
|
1181
1865
|
}
|
1182
|
-
|
1183
|
-
|
1184
|
-
|
1185
|
-
|
1186
|
-
|
1187
|
-
if (this.destroyed) {
|
1866
|
+
|
1867
|
+
_this14.downloadInfoCapability.resolve(data);
|
1868
|
+
});
|
1869
|
+
messageHandler.on('StartRenderPage', function (data) {
|
1870
|
+
if (_this14.destroyed) {
|
1188
1871
|
return;
|
1189
1872
|
}
|
1190
|
-
var page = this.pageCache[data.pageIndex];
|
1191
|
-
page._renderPageChunk(data.operatorList, data.intent);
|
1192
|
-
}, this);
|
1193
|
-
messageHandler.on('commonobj', function transportObj(data) {
|
1194
|
-
var _this12 = this;
|
1195
1873
|
|
1196
|
-
|
1874
|
+
var page = _this14.pageCache[data.pageIndex];
|
1875
|
+
|
1876
|
+
page._startRenderPage(data.transparency, data.intent);
|
1877
|
+
});
|
1878
|
+
messageHandler.on('commonobj', function (data) {
|
1879
|
+
if (_this14.destroyed) {
|
1197
1880
|
return;
|
1198
1881
|
}
|
1199
|
-
|
1200
|
-
var
|
1201
|
-
|
1882
|
+
|
1883
|
+
var _data = _slicedToArray(data, 3),
|
1884
|
+
id = _data[0],
|
1885
|
+
type = _data[1],
|
1886
|
+
exportedData = _data[2];
|
1887
|
+
|
1888
|
+
if (_this14.commonObjs.has(id)) {
|
1202
1889
|
return;
|
1203
1890
|
}
|
1891
|
+
|
1204
1892
|
switch (type) {
|
1205
1893
|
case 'Font':
|
1206
|
-
var
|
1207
|
-
|
1894
|
+
var params = _this14._params;
|
1895
|
+
|
1208
1896
|
if ('error' in exportedData) {
|
1209
1897
|
var exportedError = exportedData.error;
|
1210
|
-
(0, _util.warn)(
|
1211
|
-
|
1898
|
+
(0, _util.warn)("Error during font loading: ".concat(exportedError));
|
1899
|
+
|
1900
|
+
_this14.commonObjs.resolve(id, exportedError);
|
1901
|
+
|
1212
1902
|
break;
|
1213
1903
|
}
|
1904
|
+
|
1214
1905
|
var fontRegistry = null;
|
1215
|
-
|
1906
|
+
|
1907
|
+
if (params.pdfBug && _global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled) {
|
1216
1908
|
fontRegistry = {
|
1217
1909
|
registerFont: function registerFont(font, url) {
|
1218
|
-
|
1910
|
+
_global_scope["default"]['FontInspector'].fontAdded(font, url);
|
1219
1911
|
}
|
1220
1912
|
};
|
1221
1913
|
}
|
1914
|
+
|
1222
1915
|
var font = new _font_loader.FontFaceObject(exportedData, {
|
1223
1916
|
isEvalSupported: params.isEvalSupported,
|
1224
1917
|
disableFontFace: params.disableFontFace,
|
1918
|
+
ignoreErrors: params.ignoreErrors,
|
1919
|
+
onUnsupportedFeature: _this14._onUnsupportedFeature.bind(_this14),
|
1225
1920
|
fontRegistry: fontRegistry
|
1226
1921
|
});
|
1227
|
-
|
1228
|
-
|
1229
|
-
|
1230
|
-
|
1922
|
+
|
1923
|
+
_this14.fontLoader.bind(font).then(function () {
|
1924
|
+
_this14.commonObjs.resolve(id, font);
|
1925
|
+
}, function (reason) {
|
1926
|
+
messageHandler.sendWithPromise('FontFallback', {
|
1927
|
+
id: id
|
1928
|
+
})["finally"](function () {
|
1929
|
+
_this14.commonObjs.resolve(id, font);
|
1930
|
+
});
|
1931
|
+
});
|
1932
|
+
|
1231
1933
|
break;
|
1934
|
+
|
1232
1935
|
case 'FontPath':
|
1233
|
-
|
1936
|
+
case 'FontType3Res':
|
1937
|
+
_this14.commonObjs.resolve(id, exportedData);
|
1938
|
+
|
1234
1939
|
break;
|
1940
|
+
|
1235
1941
|
default:
|
1236
|
-
throw new Error(
|
1942
|
+
throw new Error("Got unknown common object type ".concat(type));
|
1237
1943
|
}
|
1238
|
-
}
|
1239
|
-
messageHandler.on('obj', function
|
1240
|
-
if (
|
1241
|
-
return;
|
1944
|
+
});
|
1945
|
+
messageHandler.on('obj', function (data) {
|
1946
|
+
if (_this14.destroyed) {
|
1947
|
+
return undefined;
|
1242
1948
|
}
|
1243
|
-
|
1244
|
-
var
|
1245
|
-
|
1246
|
-
|
1247
|
-
|
1248
|
-
|
1249
|
-
|
1949
|
+
|
1950
|
+
var _data2 = _slicedToArray(data, 4),
|
1951
|
+
id = _data2[0],
|
1952
|
+
pageIndex = _data2[1],
|
1953
|
+
type = _data2[2],
|
1954
|
+
imageData = _data2[3];
|
1955
|
+
|
1956
|
+
var pageProxy = _this14.pageCache[pageIndex];
|
1957
|
+
|
1958
|
+
if (pageProxy.objs.has(id)) {
|
1959
|
+
return undefined;
|
1250
1960
|
}
|
1961
|
+
|
1251
1962
|
switch (type) {
|
1252
1963
|
case 'JpegStream':
|
1253
|
-
imageData = data[3];
|
1254
1964
|
return new Promise(function (resolve, reject) {
|
1255
1965
|
var img = new Image();
|
1966
|
+
|
1256
1967
|
img.onload = function () {
|
1257
1968
|
resolve(img);
|
1258
1969
|
};
|
1970
|
+
|
1259
1971
|
img.onerror = function () {
|
1260
1972
|
reject(new Error('Error during JPEG image loading'));
|
1973
|
+
(0, _display_utils.releaseImageResources)(img);
|
1261
1974
|
};
|
1975
|
+
|
1262
1976
|
img.src = imageData;
|
1263
1977
|
}).then(function (img) {
|
1264
1978
|
pageProxy.objs.resolve(id, img);
|
1265
1979
|
});
|
1980
|
+
|
1266
1981
|
case 'Image':
|
1267
|
-
imageData = data[3];
|
1268
1982
|
pageProxy.objs.resolve(id, imageData);
|
1269
1983
|
var MAX_IMAGE_SIZE_TO_STORE = 8000000;
|
1984
|
+
|
1270
1985
|
if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
|
1271
1986
|
pageProxy.cleanupAfterRender = true;
|
1272
1987
|
}
|
1988
|
+
|
1273
1989
|
break;
|
1990
|
+
|
1274
1991
|
default:
|
1275
|
-
throw new Error(
|
1992
|
+
throw new Error("Got unknown object type ".concat(type));
|
1276
1993
|
}
|
1277
|
-
|
1278
|
-
|
1279
|
-
|
1994
|
+
|
1995
|
+
return undefined;
|
1996
|
+
});
|
1997
|
+
messageHandler.on('DocProgress', function (data) {
|
1998
|
+
if (_this14.destroyed) {
|
1280
1999
|
return;
|
1281
2000
|
}
|
1282
|
-
|
2001
|
+
|
1283
2002
|
if (loadingTask.onProgress) {
|
1284
2003
|
loadingTask.onProgress({
|
1285
2004
|
loaded: data.loaded,
|
1286
2005
|
total: data.total
|
1287
2006
|
});
|
1288
2007
|
}
|
1289
|
-
}
|
1290
|
-
messageHandler.on('
|
1291
|
-
if (this.destroyed) {
|
1292
|
-
return;
|
1293
|
-
}
|
1294
|
-
var page = this.pageCache[data.pageNum - 1];
|
1295
|
-
var intentState = page.intentStates[data.intent];
|
1296
|
-
if (intentState.displayReadyCapability) {
|
1297
|
-
intentState.displayReadyCapability.reject(data.error);
|
1298
|
-
} else {
|
1299
|
-
throw new Error(data.error);
|
1300
|
-
}
|
1301
|
-
if (intentState.operatorList) {
|
1302
|
-
intentState.operatorList.lastChunk = true;
|
1303
|
-
for (var i = 0; i < intentState.renderTasks.length; i++) {
|
1304
|
-
intentState.renderTasks[i].operatorListChanged();
|
1305
|
-
}
|
1306
|
-
}
|
1307
|
-
}, this);
|
1308
|
-
messageHandler.on('UnsupportedFeature', function (data) {
|
1309
|
-
if (this.destroyed) {
|
1310
|
-
return;
|
1311
|
-
}
|
1312
|
-
var loadingTask = this.loadingTask;
|
1313
|
-
if (loadingTask.onUnsupportedFeature) {
|
1314
|
-
loadingTask.onUnsupportedFeature(data.featureId);
|
1315
|
-
}
|
1316
|
-
}, this);
|
2008
|
+
});
|
2009
|
+
messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature.bind(this));
|
1317
2010
|
messageHandler.on('JpegDecode', function (data) {
|
1318
|
-
if (
|
2011
|
+
if (_this14.destroyed) {
|
1319
2012
|
return Promise.reject(new Error('Worker was destroyed'));
|
1320
2013
|
}
|
2014
|
+
|
1321
2015
|
if (typeof document === 'undefined') {
|
1322
2016
|
return Promise.reject(new Error('"document" is not defined.'));
|
1323
2017
|
}
|
1324
|
-
|
1325
|
-
var
|
2018
|
+
|
2019
|
+
var _data3 = _slicedToArray(data, 2),
|
2020
|
+
imageUrl = _data3[0],
|
2021
|
+
components = _data3[1];
|
2022
|
+
|
1326
2023
|
if (components !== 3 && components !== 1) {
|
1327
2024
|
return Promise.reject(new Error('Only 3 components or 1 component can be returned'));
|
1328
2025
|
}
|
2026
|
+
|
1329
2027
|
return new Promise(function (resolve, reject) {
|
1330
2028
|
var img = new Image();
|
2029
|
+
|
1331
2030
|
img.onload = function () {
|
1332
|
-
var width = img.width
|
1333
|
-
|
2031
|
+
var width = img.width,
|
2032
|
+
height = img.height;
|
1334
2033
|
var size = width * height;
|
1335
2034
|
var rgbaLength = size * 4;
|
1336
|
-
var buf = new
|
2035
|
+
var buf = new Uint8ClampedArray(size * components);
|
1337
2036
|
var tmpCanvas = document.createElement('canvas');
|
1338
2037
|
tmpCanvas.width = width;
|
1339
2038
|
tmpCanvas.height = height;
|
1340
2039
|
var tmpCtx = tmpCanvas.getContext('2d');
|
1341
2040
|
tmpCtx.drawImage(img, 0, 0);
|
1342
2041
|
var data = tmpCtx.getImageData(0, 0, width, height).data;
|
1343
|
-
|
2042
|
+
|
1344
2043
|
if (components === 3) {
|
1345
|
-
for (i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
|
2044
|
+
for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
|
1346
2045
|
buf[j] = data[i];
|
1347
2046
|
buf[j + 1] = data[i + 1];
|
1348
2047
|
buf[j + 2] = data[i + 2];
|
1349
2048
|
}
|
1350
2049
|
} else if (components === 1) {
|
1351
|
-
for (
|
1352
|
-
buf[
|
2050
|
+
for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) {
|
2051
|
+
buf[_j] = data[_i2];
|
1353
2052
|
}
|
1354
2053
|
}
|
2054
|
+
|
1355
2055
|
resolve({
|
1356
2056
|
data: buf,
|
1357
2057
|
width: width,
|
1358
2058
|
height: height
|
1359
2059
|
});
|
2060
|
+
(0, _display_utils.releaseImageResources)(img);
|
2061
|
+
tmpCanvas.width = 0;
|
2062
|
+
tmpCanvas.height = 0;
|
2063
|
+
tmpCanvas = null;
|
2064
|
+
tmpCtx = null;
|
1360
2065
|
};
|
2066
|
+
|
1361
2067
|
img.onerror = function () {
|
1362
2068
|
reject(new Error('JpegDecode failed to load image'));
|
2069
|
+
(0, _display_utils.releaseImageResources)(img);
|
1363
2070
|
};
|
2071
|
+
|
1364
2072
|
img.src = imageUrl;
|
1365
2073
|
});
|
1366
|
-
}
|
1367
|
-
messageHandler.on('FetchBuiltInCMap', function (data) {
|
1368
|
-
if (
|
1369
|
-
|
2074
|
+
});
|
2075
|
+
messageHandler.on('FetchBuiltInCMap', function (data, sink) {
|
2076
|
+
if (_this14.destroyed) {
|
2077
|
+
sink.error(new Error('Worker was destroyed'));
|
2078
|
+
return;
|
1370
2079
|
}
|
1371
|
-
|
1372
|
-
|
1373
|
-
|
1374
|
-
|
2080
|
+
|
2081
|
+
var fetched = false;
|
2082
|
+
|
2083
|
+
sink.onPull = function () {
|
2084
|
+
if (fetched) {
|
2085
|
+
sink.close();
|
2086
|
+
return;
|
2087
|
+
}
|
2088
|
+
|
2089
|
+
fetched = true;
|
2090
|
+
|
2091
|
+
_this14.CMapReaderFactory.fetch(data).then(function (builtInCMap) {
|
2092
|
+
sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);
|
2093
|
+
})["catch"](function (reason) {
|
2094
|
+
sink.error(reason);
|
2095
|
+
});
|
2096
|
+
};
|
2097
|
+
});
|
2098
|
+
}
|
2099
|
+
}, {
|
2100
|
+
key: "_onUnsupportedFeature",
|
2101
|
+
value: function _onUnsupportedFeature(_ref12) {
|
2102
|
+
var featureId = _ref12.featureId;
|
2103
|
+
|
2104
|
+
if (this.destroyed) {
|
2105
|
+
return;
|
2106
|
+
}
|
2107
|
+
|
2108
|
+
if (this.loadingTask.onUnsupportedFeature) {
|
2109
|
+
this.loadingTask.onUnsupportedFeature(featureId);
|
2110
|
+
}
|
2111
|
+
}
|
2112
|
+
}, {
|
2113
|
+
key: "getData",
|
2114
|
+
value: function getData() {
|
1375
2115
|
return this.messageHandler.sendWithPromise('GetData', null);
|
1376
|
-
}
|
1377
|
-
|
1378
|
-
|
2116
|
+
}
|
2117
|
+
}, {
|
2118
|
+
key: "getPage",
|
2119
|
+
value: function getPage(pageNumber) {
|
2120
|
+
var _this15 = this;
|
1379
2121
|
|
1380
|
-
if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.
|
2122
|
+
if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
|
1381
2123
|
return Promise.reject(new Error('Invalid page request'));
|
1382
2124
|
}
|
2125
|
+
|
1383
2126
|
var pageIndex = pageNumber - 1;
|
2127
|
+
|
1384
2128
|
if (pageIndex in this.pagePromises) {
|
1385
2129
|
return this.pagePromises[pageIndex];
|
1386
2130
|
}
|
1387
|
-
|
1388
|
-
|
2131
|
+
|
2132
|
+
var promise = this.messageHandler.sendWithPromise('GetPage', {
|
2133
|
+
pageIndex: pageIndex
|
2134
|
+
}).then(function (pageInfo) {
|
2135
|
+
if (_this15.destroyed) {
|
1389
2136
|
throw new Error('Transport destroyed');
|
1390
2137
|
}
|
1391
|
-
|
1392
|
-
|
2138
|
+
|
2139
|
+
var page = new PDFPageProxy(pageIndex, pageInfo, _this15, _this15._params.pdfBug);
|
2140
|
+
_this15.pageCache[pageIndex] = page;
|
1393
2141
|
return page;
|
1394
2142
|
});
|
1395
2143
|
this.pagePromises[pageIndex] = promise;
|
1396
2144
|
return promise;
|
1397
|
-
}
|
1398
|
-
|
1399
|
-
|
1400
|
-
|
2145
|
+
}
|
2146
|
+
}, {
|
2147
|
+
key: "getPageIndex",
|
2148
|
+
value: function getPageIndex(ref) {
|
2149
|
+
return this.messageHandler.sendWithPromise('GetPageIndex', {
|
2150
|
+
ref: ref
|
2151
|
+
})["catch"](function (reason) {
|
1401
2152
|
return Promise.reject(new Error(reason));
|
1402
2153
|
});
|
1403
|
-
}
|
1404
|
-
|
2154
|
+
}
|
2155
|
+
}, {
|
2156
|
+
key: "getAnnotations",
|
2157
|
+
value: function getAnnotations(pageIndex, intent) {
|
1405
2158
|
return this.messageHandler.sendWithPromise('GetAnnotations', {
|
1406
2159
|
pageIndex: pageIndex,
|
1407
2160
|
intent: intent
|
1408
2161
|
});
|
1409
|
-
}
|
1410
|
-
|
2162
|
+
}
|
2163
|
+
}, {
|
2164
|
+
key: "getDestinations",
|
2165
|
+
value: function getDestinations() {
|
1411
2166
|
return this.messageHandler.sendWithPromise('GetDestinations', null);
|
1412
|
-
}
|
1413
|
-
|
1414
|
-
|
1415
|
-
|
1416
|
-
|
2167
|
+
}
|
2168
|
+
}, {
|
2169
|
+
key: "getDestination",
|
2170
|
+
value: function getDestination(id) {
|
2171
|
+
if (typeof id !== 'string') {
|
2172
|
+
return Promise.reject(new Error('Invalid destination request.'));
|
2173
|
+
}
|
2174
|
+
|
2175
|
+
return this.messageHandler.sendWithPromise('GetDestination', {
|
2176
|
+
id: id
|
2177
|
+
});
|
2178
|
+
}
|
2179
|
+
}, {
|
2180
|
+
key: "getPageLabels",
|
2181
|
+
value: function getPageLabels() {
|
1417
2182
|
return this.messageHandler.sendWithPromise('GetPageLabels', null);
|
1418
|
-
}
|
1419
|
-
|
2183
|
+
}
|
2184
|
+
}, {
|
2185
|
+
key: "getPageLayout",
|
2186
|
+
value: function getPageLayout() {
|
2187
|
+
return this.messageHandler.sendWithPromise('GetPageLayout', null);
|
2188
|
+
}
|
2189
|
+
}, {
|
2190
|
+
key: "getPageMode",
|
2191
|
+
value: function getPageMode() {
|
1420
2192
|
return this.messageHandler.sendWithPromise('GetPageMode', null);
|
1421
|
-
}
|
1422
|
-
|
1423
|
-
|
2193
|
+
}
|
2194
|
+
}, {
|
2195
|
+
key: "getViewerPreferences",
|
2196
|
+
value: function getViewerPreferences() {
|
2197
|
+
return this.messageHandler.sendWithPromise('GetViewerPreferences', null);
|
2198
|
+
}
|
2199
|
+
}, {
|
2200
|
+
key: "getOpenActionDestination",
|
2201
|
+
value: function getOpenActionDestination() {
|
2202
|
+
return this.messageHandler.sendWithPromise('GetOpenActionDestination', null);
|
2203
|
+
}
|
2204
|
+
}, {
|
2205
|
+
key: "getAttachments",
|
2206
|
+
value: function getAttachments() {
|
1424
2207
|
return this.messageHandler.sendWithPromise('GetAttachments', null);
|
1425
|
-
}
|
1426
|
-
|
2208
|
+
}
|
2209
|
+
}, {
|
2210
|
+
key: "getJavaScript",
|
2211
|
+
value: function getJavaScript() {
|
1427
2212
|
return this.messageHandler.sendWithPromise('GetJavaScript', null);
|
1428
|
-
}
|
1429
|
-
|
2213
|
+
}
|
2214
|
+
}, {
|
2215
|
+
key: "getOutline",
|
2216
|
+
value: function getOutline() {
|
1430
2217
|
return this.messageHandler.sendWithPromise('GetOutline', null);
|
1431
|
-
}
|
1432
|
-
|
1433
|
-
|
2218
|
+
}
|
2219
|
+
}, {
|
2220
|
+
key: "getPermissions",
|
2221
|
+
value: function getPermissions() {
|
2222
|
+
return this.messageHandler.sendWithPromise('GetPermissions', null);
|
2223
|
+
}
|
2224
|
+
}, {
|
2225
|
+
key: "getMetadata",
|
2226
|
+
value: function getMetadata() {
|
2227
|
+
var _this16 = this;
|
1434
2228
|
|
1435
2229
|
return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {
|
1436
2230
|
return {
|
1437
2231
|
info: results[0],
|
1438
2232
|
metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
|
1439
|
-
contentDispositionFilename:
|
2233
|
+
contentDispositionFilename: _this16._fullReader ? _this16._fullReader.filename : null
|
1440
2234
|
};
|
1441
2235
|
});
|
1442
|
-
}
|
1443
|
-
|
2236
|
+
}
|
2237
|
+
}, {
|
2238
|
+
key: "getStats",
|
2239
|
+
value: function getStats() {
|
1444
2240
|
return this.messageHandler.sendWithPromise('GetStats', null);
|
1445
|
-
}
|
1446
|
-
|
1447
|
-
|
2241
|
+
}
|
2242
|
+
}, {
|
2243
|
+
key: "startCleanup",
|
2244
|
+
value: function startCleanup() {
|
2245
|
+
var _this17 = this;
|
1448
2246
|
|
1449
2247
|
this.messageHandler.sendWithPromise('Cleanup', null).then(function () {
|
1450
|
-
for (var i = 0, ii =
|
1451
|
-
var page =
|
2248
|
+
for (var i = 0, ii = _this17.pageCache.length; i < ii; i++) {
|
2249
|
+
var page = _this17.pageCache[i];
|
2250
|
+
|
1452
2251
|
if (page) {
|
1453
2252
|
page.cleanup();
|
1454
2253
|
}
|
1455
2254
|
}
|
1456
|
-
|
1457
|
-
|
2255
|
+
|
2256
|
+
_this17.commonObjs.clear();
|
2257
|
+
|
2258
|
+
_this17.fontLoader.clear();
|
1458
2259
|
});
|
1459
|
-
}
|
1460
|
-
|
2260
|
+
}
|
2261
|
+
}, {
|
2262
|
+
key: "loadingParams",
|
2263
|
+
get: function get() {
|
1461
2264
|
var params = this._params;
|
1462
2265
|
return (0, _util.shadow)(this, 'loadingParams', {
|
1463
|
-
disableRange: params.disableRange,
|
1464
|
-
disableStream: params.disableStream,
|
1465
2266
|
disableAutoFetch: params.disableAutoFetch,
|
1466
2267
|
disableCreateObjectURL: params.disableCreateObjectURL,
|
1467
2268
|
disableFontFace: params.disableFontFace,
|
1468
2269
|
nativeImageDecoderSupport: params.nativeImageDecoderSupport
|
1469
2270
|
});
|
1470
2271
|
}
|
1471
|
-
};
|
2272
|
+
}]);
|
2273
|
+
|
1472
2274
|
return WorkerTransport;
|
1473
2275
|
}();
|
1474
|
-
|
2276
|
+
|
2277
|
+
var PDFObjects =
|
2278
|
+
/*#__PURE__*/
|
2279
|
+
function () {
|
1475
2280
|
function PDFObjects() {
|
1476
|
-
this
|
2281
|
+
_classCallCheck(this, PDFObjects);
|
2282
|
+
|
2283
|
+
this._objs = Object.create(null);
|
1477
2284
|
}
|
1478
|
-
|
1479
|
-
|
1480
|
-
|
1481
|
-
|
2285
|
+
|
2286
|
+
_createClass(PDFObjects, [{
|
2287
|
+
key: "_ensureObj",
|
2288
|
+
value: function _ensureObj(objId) {
|
2289
|
+
if (this._objs[objId]) {
|
2290
|
+
return this._objs[objId];
|
1482
2291
|
}
|
1483
|
-
|
2292
|
+
|
2293
|
+
return this._objs[objId] = {
|
1484
2294
|
capability: (0, _util.createPromiseCapability)(),
|
1485
2295
|
data: null,
|
1486
2296
|
resolved: false
|
1487
2297
|
};
|
1488
|
-
|
1489
|
-
|
1490
|
-
|
1491
|
-
|
2298
|
+
}
|
2299
|
+
}, {
|
2300
|
+
key: "get",
|
2301
|
+
value: function get(objId) {
|
2302
|
+
var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
2303
|
+
|
1492
2304
|
if (callback) {
|
1493
|
-
this.
|
2305
|
+
this._ensureObj(objId).capability.promise.then(callback);
|
2306
|
+
|
1494
2307
|
return null;
|
1495
2308
|
}
|
1496
|
-
|
2309
|
+
|
2310
|
+
var obj = this._objs[objId];
|
2311
|
+
|
1497
2312
|
if (!obj || !obj.resolved) {
|
1498
|
-
throw new Error(
|
2313
|
+
throw new Error("Requesting object that isn't resolved yet ".concat(objId, "."));
|
1499
2314
|
}
|
2315
|
+
|
1500
2316
|
return obj.data;
|
1501
|
-
}
|
1502
|
-
|
1503
|
-
|
2317
|
+
}
|
2318
|
+
}, {
|
2319
|
+
key: "has",
|
2320
|
+
value: function has(objId) {
|
2321
|
+
var obj = this._objs[objId];
|
2322
|
+
return obj ? obj.resolved : false;
|
2323
|
+
}
|
2324
|
+
}, {
|
2325
|
+
key: "resolve",
|
2326
|
+
value: function resolve(objId, data) {
|
2327
|
+
var obj = this._ensureObj(objId);
|
2328
|
+
|
1504
2329
|
obj.resolved = true;
|
1505
2330
|
obj.data = data;
|
1506
2331
|
obj.capability.resolve(data);
|
1507
|
-
}
|
1508
|
-
|
1509
|
-
|
1510
|
-
|
1511
|
-
|
1512
|
-
|
1513
|
-
|
1514
|
-
|
1515
|
-
|
1516
|
-
|
1517
|
-
},
|
1518
|
-
getData: function PDFObjects_getData(objId) {
|
1519
|
-
var objs = this.objs;
|
1520
|
-
if (!objs[objId] || !objs[objId].resolved) {
|
1521
|
-
return null;
|
2332
|
+
}
|
2333
|
+
}, {
|
2334
|
+
key: "clear",
|
2335
|
+
value: function clear() {
|
2336
|
+
for (var objId in this._objs) {
|
2337
|
+
var data = this._objs[objId].data;
|
2338
|
+
|
2339
|
+
if (typeof Image !== 'undefined' && data instanceof Image) {
|
2340
|
+
(0, _display_utils.releaseImageResources)(data);
|
2341
|
+
}
|
1522
2342
|
}
|
1523
|
-
|
1524
|
-
|
1525
|
-
clear: function PDFObjects_clear() {
|
1526
|
-
this.objs = Object.create(null);
|
2343
|
+
|
2344
|
+
this._objs = Object.create(null);
|
1527
2345
|
}
|
1528
|
-
};
|
2346
|
+
}]);
|
2347
|
+
|
1529
2348
|
return PDFObjects;
|
1530
2349
|
}();
|
1531
|
-
|
2350
|
+
|
2351
|
+
var RenderTask =
|
2352
|
+
/*#__PURE__*/
|
2353
|
+
function () {
|
1532
2354
|
function RenderTask(internalRenderTask) {
|
2355
|
+
_classCallCheck(this, RenderTask);
|
2356
|
+
|
1533
2357
|
this._internalRenderTask = internalRenderTask;
|
1534
2358
|
this.onContinue = null;
|
1535
2359
|
}
|
1536
|
-
|
1537
|
-
|
1538
|
-
|
1539
|
-
|
1540
|
-
cancel: function RenderTask_cancel() {
|
2360
|
+
|
2361
|
+
_createClass(RenderTask, [{
|
2362
|
+
key: "cancel",
|
2363
|
+
value: function cancel() {
|
1541
2364
|
this._internalRenderTask.cancel();
|
1542
|
-
}
|
1543
|
-
|
2365
|
+
}
|
2366
|
+
}, {
|
2367
|
+
key: "then",
|
2368
|
+
value: function then(onFulfilled, onRejected) {
|
2369
|
+
(0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.');
|
1544
2370
|
return this.promise.then.apply(this.promise, arguments);
|
1545
2371
|
}
|
1546
|
-
}
|
2372
|
+
}, {
|
2373
|
+
key: "promise",
|
2374
|
+
get: function get() {
|
2375
|
+
return this._internalRenderTask.capability.promise;
|
2376
|
+
}
|
2377
|
+
}]);
|
2378
|
+
|
1547
2379
|
return RenderTask;
|
1548
2380
|
}();
|
2381
|
+
|
1549
2382
|
var InternalRenderTask = function InternalRenderTaskClosure() {
|
1550
|
-
var canvasInRendering = new
|
1551
|
-
|
1552
|
-
|
1553
|
-
|
1554
|
-
|
1555
|
-
|
1556
|
-
|
1557
|
-
|
1558
|
-
|
1559
|
-
|
1560
|
-
|
1561
|
-
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1565
|
-
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1569
|
-
|
1570
|
-
|
1571
|
-
|
1572
|
-
|
1573
|
-
|
1574
|
-
|
1575
|
-
|
1576
|
-
|
1577
|
-
|
1578
|
-
|
1579
|
-
|
1580
|
-
|
1581
|
-
}
|
1582
|
-
canvasInRendering.set(this._canvas, this);
|
1583
|
-
}
|
1584
|
-
if (this.cancelled) {
|
1585
|
-
return;
|
1586
|
-
}
|
1587
|
-
if (this._pdfBug && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) {
|
1588
|
-
this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1);
|
1589
|
-
this.stepper.init(this.operatorList);
|
1590
|
-
this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
|
1591
|
-
}
|
1592
|
-
var params = this.params;
|
1593
|
-
this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer);
|
1594
|
-
this.gfx.beginDrawing({
|
1595
|
-
transform: params.transform,
|
1596
|
-
viewport: params.viewport,
|
1597
|
-
transparency: transparency,
|
1598
|
-
background: params.background
|
1599
|
-
});
|
1600
|
-
this.operatorListIdx = 0;
|
1601
|
-
this.graphicsReady = true;
|
1602
|
-
if (this.graphicsReadyCallback) {
|
1603
|
-
this.graphicsReadyCallback();
|
1604
|
-
}
|
1605
|
-
},
|
1606
|
-
cancel: function InternalRenderTask_cancel() {
|
2383
|
+
var canvasInRendering = new WeakSet();
|
2384
|
+
|
2385
|
+
var InternalRenderTask =
|
2386
|
+
/*#__PURE__*/
|
2387
|
+
function () {
|
2388
|
+
function InternalRenderTask(_ref13) {
|
2389
|
+
var callback = _ref13.callback,
|
2390
|
+
params = _ref13.params,
|
2391
|
+
objs = _ref13.objs,
|
2392
|
+
commonObjs = _ref13.commonObjs,
|
2393
|
+
operatorList = _ref13.operatorList,
|
2394
|
+
pageNumber = _ref13.pageNumber,
|
2395
|
+
canvasFactory = _ref13.canvasFactory,
|
2396
|
+
webGLContext = _ref13.webGLContext,
|
2397
|
+
_ref13$useRequestAnim = _ref13.useRequestAnimationFrame,
|
2398
|
+
useRequestAnimationFrame = _ref13$useRequestAnim === void 0 ? false : _ref13$useRequestAnim,
|
2399
|
+
_ref13$pdfBug = _ref13.pdfBug,
|
2400
|
+
pdfBug = _ref13$pdfBug === void 0 ? false : _ref13$pdfBug;
|
2401
|
+
|
2402
|
+
_classCallCheck(this, InternalRenderTask);
|
2403
|
+
|
2404
|
+
this.callback = callback;
|
2405
|
+
this.params = params;
|
2406
|
+
this.objs = objs;
|
2407
|
+
this.commonObjs = commonObjs;
|
2408
|
+
this.operatorListIdx = null;
|
2409
|
+
this.operatorList = operatorList;
|
2410
|
+
this.pageNumber = pageNumber;
|
2411
|
+
this.canvasFactory = canvasFactory;
|
2412
|
+
this.webGLContext = webGLContext;
|
2413
|
+
this._pdfBug = pdfBug;
|
1607
2414
|
this.running = false;
|
1608
|
-
this.
|
1609
|
-
|
1610
|
-
|
1611
|
-
|
1612
|
-
this.
|
1613
|
-
|
1614
|
-
|
1615
|
-
|
1616
|
-
|
1617
|
-
|
2415
|
+
this.graphicsReadyCallback = null;
|
2416
|
+
this.graphicsReady = false;
|
2417
|
+
this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined';
|
2418
|
+
this.cancelled = false;
|
2419
|
+
this.capability = (0, _util.createPromiseCapability)();
|
2420
|
+
this.task = new RenderTask(this);
|
2421
|
+
this._continueBound = this._continue.bind(this);
|
2422
|
+
this._scheduleNextBound = this._scheduleNext.bind(this);
|
2423
|
+
this._nextBound = this._next.bind(this);
|
2424
|
+
this._canvas = params.canvasContext.canvas;
|
2425
|
+
}
|
2426
|
+
|
2427
|
+
_createClass(InternalRenderTask, [{
|
2428
|
+
key: "initializeGraphics",
|
2429
|
+
value: function initializeGraphics() {
|
2430
|
+
var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
2431
|
+
|
2432
|
+
if (this.cancelled) {
|
2433
|
+
return;
|
2434
|
+
}
|
2435
|
+
|
2436
|
+
if (this._canvas) {
|
2437
|
+
if (canvasInRendering.has(this._canvas)) {
|
2438
|
+
throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');
|
2439
|
+
}
|
2440
|
+
|
2441
|
+
canvasInRendering.add(this._canvas);
|
2442
|
+
}
|
2443
|
+
|
2444
|
+
if (this._pdfBug && _global_scope["default"].StepperManager && _global_scope["default"].StepperManager.enabled) {
|
2445
|
+
this.stepper = _global_scope["default"].StepperManager.create(this.pageNumber - 1);
|
2446
|
+
this.stepper.init(this.operatorList);
|
2447
|
+
this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
|
2448
|
+
}
|
2449
|
+
|
2450
|
+
var _this$params = this.params,
|
2451
|
+
canvasContext = _this$params.canvasContext,
|
2452
|
+
viewport = _this$params.viewport,
|
2453
|
+
transform = _this$params.transform,
|
2454
|
+
imageLayer = _this$params.imageLayer,
|
2455
|
+
background = _this$params.background;
|
2456
|
+
this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);
|
2457
|
+
this.gfx.beginDrawing({
|
2458
|
+
transform: transform,
|
2459
|
+
viewport: viewport,
|
2460
|
+
transparency: transparency,
|
2461
|
+
background: background
|
2462
|
+
});
|
2463
|
+
this.operatorListIdx = 0;
|
2464
|
+
this.graphicsReady = true;
|
2465
|
+
|
2466
|
+
if (this.graphicsReadyCallback) {
|
2467
|
+
this.graphicsReadyCallback();
|
1618
2468
|
}
|
1619
|
-
return;
|
1620
|
-
}
|
1621
|
-
if (this.stepper) {
|
1622
|
-
this.stepper.updateOperatorList(this.operatorList);
|
1623
|
-
}
|
1624
|
-
if (this.running) {
|
1625
|
-
return;
|
1626
|
-
}
|
1627
|
-
this._continue();
|
1628
|
-
},
|
1629
|
-
_continue: function InternalRenderTask__continue() {
|
1630
|
-
this.running = true;
|
1631
|
-
if (this.cancelled) {
|
1632
|
-
return;
|
1633
|
-
}
|
1634
|
-
if (this.task.onContinue) {
|
1635
|
-
this.task.onContinue(this._scheduleNextBound);
|
1636
|
-
} else {
|
1637
|
-
this._scheduleNext();
|
1638
|
-
}
|
1639
|
-
},
|
1640
|
-
_scheduleNext: function InternalRenderTask__scheduleNext() {
|
1641
|
-
if (this.useRequestAnimationFrame && typeof window !== 'undefined') {
|
1642
|
-
window.requestAnimationFrame(this._nextBound);
|
1643
|
-
} else {
|
1644
|
-
Promise.resolve(undefined).then(this._nextBound);
|
1645
|
-
}
|
1646
|
-
},
|
1647
|
-
_next: function InternalRenderTask__next() {
|
1648
|
-
if (this.cancelled) {
|
1649
|
-
return;
|
1650
2469
|
}
|
1651
|
-
|
1652
|
-
|
2470
|
+
}, {
|
2471
|
+
key: "cancel",
|
2472
|
+
value: function cancel() {
|
2473
|
+
var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
1653
2474
|
this.running = false;
|
1654
|
-
|
2475
|
+
this.cancelled = true;
|
2476
|
+
|
2477
|
+
if (this.gfx) {
|
1655
2478
|
this.gfx.endDrawing();
|
1656
|
-
|
1657
|
-
|
2479
|
+
}
|
2480
|
+
|
2481
|
+
if (this._canvas) {
|
2482
|
+
canvasInRendering["delete"](this._canvas);
|
2483
|
+
}
|
2484
|
+
|
2485
|
+
this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas'));
|
2486
|
+
}
|
2487
|
+
}, {
|
2488
|
+
key: "operatorListChanged",
|
2489
|
+
value: function operatorListChanged() {
|
2490
|
+
if (!this.graphicsReady) {
|
2491
|
+
if (!this.graphicsReadyCallback) {
|
2492
|
+
this.graphicsReadyCallback = this._continueBound;
|
1658
2493
|
}
|
1659
|
-
|
2494
|
+
|
2495
|
+
return;
|
1660
2496
|
}
|
2497
|
+
|
2498
|
+
if (this.stepper) {
|
2499
|
+
this.stepper.updateOperatorList(this.operatorList);
|
2500
|
+
}
|
2501
|
+
|
2502
|
+
if (this.running) {
|
2503
|
+
return;
|
2504
|
+
}
|
2505
|
+
|
2506
|
+
this._continue();
|
1661
2507
|
}
|
1662
|
-
}
|
1663
|
-
|
2508
|
+
}, {
|
2509
|
+
key: "_continue",
|
2510
|
+
value: function _continue() {
|
2511
|
+
this.running = true;
|
2512
|
+
|
2513
|
+
if (this.cancelled) {
|
2514
|
+
return;
|
2515
|
+
}
|
2516
|
+
|
2517
|
+
if (this.task.onContinue) {
|
2518
|
+
this.task.onContinue(this._scheduleNextBound);
|
2519
|
+
} else {
|
2520
|
+
this._scheduleNext();
|
2521
|
+
}
|
2522
|
+
}
|
2523
|
+
}, {
|
2524
|
+
key: "_scheduleNext",
|
2525
|
+
value: function _scheduleNext() {
|
2526
|
+
var _this18 = this;
|
2527
|
+
|
2528
|
+
if (this._useRequestAnimationFrame) {
|
2529
|
+
window.requestAnimationFrame(function () {
|
2530
|
+
_this18._nextBound()["catch"](_this18.cancel.bind(_this18));
|
2531
|
+
});
|
2532
|
+
} else {
|
2533
|
+
Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this));
|
2534
|
+
}
|
2535
|
+
}
|
2536
|
+
}, {
|
2537
|
+
key: "_next",
|
2538
|
+
value: function () {
|
2539
|
+
var _next2 = _asyncToGenerator(
|
2540
|
+
/*#__PURE__*/
|
2541
|
+
_regenerator["default"].mark(function _callee() {
|
2542
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
2543
|
+
while (1) {
|
2544
|
+
switch (_context.prev = _context.next) {
|
2545
|
+
case 0:
|
2546
|
+
if (!this.cancelled) {
|
2547
|
+
_context.next = 2;
|
2548
|
+
break;
|
2549
|
+
}
|
2550
|
+
|
2551
|
+
return _context.abrupt("return");
|
2552
|
+
|
2553
|
+
case 2:
|
2554
|
+
this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
|
2555
|
+
|
2556
|
+
if (this.operatorListIdx === this.operatorList.argsArray.length) {
|
2557
|
+
this.running = false;
|
2558
|
+
|
2559
|
+
if (this.operatorList.lastChunk) {
|
2560
|
+
this.gfx.endDrawing();
|
2561
|
+
|
2562
|
+
if (this._canvas) {
|
2563
|
+
canvasInRendering["delete"](this._canvas);
|
2564
|
+
}
|
2565
|
+
|
2566
|
+
this.callback();
|
2567
|
+
}
|
2568
|
+
}
|
2569
|
+
|
2570
|
+
case 4:
|
2571
|
+
case "end":
|
2572
|
+
return _context.stop();
|
2573
|
+
}
|
2574
|
+
}
|
2575
|
+
}, _callee, this);
|
2576
|
+
}));
|
2577
|
+
|
2578
|
+
function _next() {
|
2579
|
+
return _next2.apply(this, arguments);
|
2580
|
+
}
|
2581
|
+
|
2582
|
+
return _next;
|
2583
|
+
}()
|
2584
|
+
}]);
|
2585
|
+
|
2586
|
+
return InternalRenderTask;
|
2587
|
+
}();
|
2588
|
+
|
1664
2589
|
return InternalRenderTask;
|
1665
2590
|
}();
|
1666
|
-
|
1667
|
-
|
1668
|
-
exports.version = version = '2.0.550';
|
1669
|
-
exports.build = build = '76337fdc';
|
1670
|
-
}
|
1671
|
-
exports.getDocument = getDocument;
|
1672
|
-
exports.LoopbackPort = LoopbackPort;
|
1673
|
-
exports.PDFDataRangeTransport = PDFDataRangeTransport;
|
1674
|
-
exports.PDFWorker = PDFWorker;
|
1675
|
-
exports.PDFDocumentProxy = PDFDocumentProxy;
|
1676
|
-
exports.PDFPageProxy = PDFPageProxy;
|
1677
|
-
exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
|
2591
|
+
|
2592
|
+
var version = '2.3.200';
|
1678
2593
|
exports.version = version;
|
2594
|
+
var build = '4ae3f9fc';
|
1679
2595
|
exports.build = build;
|