pdfjs-dist 2.0.943 → 2.1.266
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/bower.json +1 -1
- package/build/pdf.js +15329 -11095
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +12497 -4184
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/image_decoders/pdf.image_decoders.js +3438 -1209
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +1 -1
- package/lib/core/annotation.js +335 -109
- package/lib/core/arithmetic_decoder.js +274 -244
- package/lib/core/bidi.js +64 -5
- package/lib/core/ccitt.js +172 -17
- package/lib/core/ccitt_stream.js +14 -5
- package/lib/core/cff_parser.js +304 -28
- package/lib/core/charsets.js +4 -3
- package/lib/core/chunked_stream.js +379 -149
- package/lib/core/cmap.js +210 -40
- package/lib/core/colorspace.js +332 -187
- package/lib/core/crypto.js +289 -44
- package/lib/core/document.js +508 -249
- package/lib/core/encodings.js +18 -9
- package/lib/core/evaluator.js +657 -119
- package/lib/core/font_renderer.js +217 -34
- package/lib/core/fonts.js +632 -41
- package/lib/core/function.js +252 -26
- package/lib/core/glyphlist.js +2 -1
- package/lib/core/image.js +124 -27
- package/lib/core/jbig2.js +425 -65
- package/lib/core/jbig2_stream.js +18 -7
- package/lib/core/jpeg_stream.js +24 -8
- package/lib/core/jpg.js +208 -16
- package/lib/core/jpx.js +395 -5
- package/lib/core/jpx_stream.js +17 -5
- package/lib/core/metrics.js +3 -3
- package/lib/core/murmurhash3.js +23 -5
- package/lib/core/obj.js +625 -132
- package/lib/core/operator_list.js +104 -3
- package/lib/core/parser.js +262 -25
- package/lib/core/pattern.js +144 -12
- package/lib/core/pdf_manager.js +104 -70
- package/lib/core/primitives.js +74 -21
- package/lib/core/ps_parser.js +133 -44
- package/lib/core/standard_fonts.js +9 -9
- package/lib/core/stream.js +283 -31
- package/lib/core/type1_parser.js +138 -6
- package/lib/core/unicode.js +28 -1
- package/lib/core/worker.js +192 -57
- package/lib/display/annotation_layer.js +303 -123
- package/lib/display/api.js +1073 -574
- package/lib/display/api_compatibility.js +4 -1
- package/lib/display/canvas.js +314 -18
- package/lib/display/content_disposition.js +70 -23
- package/lib/display/dom_utils.js +112 -59
- package/lib/display/fetch_stream.js +95 -50
- package/lib/display/font_loader.js +250 -132
- package/lib/display/metadata.js +37 -15
- package/lib/display/network.js +123 -34
- package/lib/display/network_utils.js +23 -10
- package/lib/display/node_stream.js +162 -65
- package/lib/display/pattern_helper.js +57 -6
- package/lib/display/svg.js +194 -18
- package/lib/display/text_layer.js +128 -14
- package/lib/display/transport_stream.js +83 -27
- package/lib/display/webgl.js +63 -17
- package/lib/display/worker_options.js +4 -3
- package/lib/display/xml_parser.js +162 -52
- package/lib/examples/node/domstubs.js +56 -3
- package/lib/pdf.js +15 -2
- package/lib/pdf.worker.js +4 -2
- package/lib/shared/compatibility.js +129 -26
- package/lib/shared/global_scope.js +1 -1
- package/lib/shared/is_node.js +3 -3
- package/lib/shared/message_handler.js +103 -45
- package/lib/shared/streams_polyfill.js +20 -16
- package/lib/shared/url_polyfill.js +8 -2
- package/lib/shared/util.js +246 -84
- package/lib/test/unit/annotation_spec.js +99 -73
- package/lib/test/unit/api_spec.js +347 -113
- package/lib/test/unit/bidi_spec.js +6 -6
- package/lib/test/unit/cff_parser_spec.js +17 -5
- package/lib/test/unit/clitests_helper.js +7 -8
- package/lib/test/unit/cmap_spec.js +79 -25
- package/lib/test/unit/colorspace_spec.js +65 -18
- package/lib/test/unit/crypto_spec.js +16 -4
- package/lib/test/unit/custom_spec.js +40 -52
- package/lib/test/unit/display_svg_spec.js +32 -16
- package/lib/test/unit/document_spec.js +2 -2
- package/lib/test/unit/dom_utils_spec.js +8 -8
- package/lib/test/unit/encodings_spec.js +24 -44
- package/lib/test/unit/evaluator_spec.js +15 -8
- package/lib/test/unit/function_spec.js +16 -4
- package/lib/test/unit/jasmine-boot.js +29 -16
- package/lib/test/unit/message_handler_spec.js +19 -6
- package/lib/test/unit/metadata_spec.js +64 -11
- package/lib/test/unit/murmurhash3_spec.js +2 -2
- package/lib/test/unit/network_spec.js +19 -4
- package/lib/test/unit/network_utils_spec.js +6 -4
- package/lib/test/unit/node_stream_spec.js +50 -26
- package/lib/test/unit/parser_spec.js +13 -29
- package/lib/test/unit/pdf_find_controller_spec.js +144 -32
- package/lib/test/unit/pdf_find_utils_spec.js +10 -9
- package/lib/test/unit/pdf_history_spec.js +20 -8
- package/lib/test/unit/primitives_spec.js +23 -3
- package/lib/test/unit/stream_spec.js +8 -3
- package/lib/test/unit/test_utils.js +89 -26
- package/lib/test/unit/testreporter.js +19 -1
- package/lib/test/unit/type1_parser_spec.js +7 -5
- package/lib/test/unit/ui_utils_spec.js +162 -38
- package/lib/test/unit/unicode_spec.js +13 -10
- package/lib/test/unit/util_spec.js +89 -9
- package/lib/web/annotation_layer_builder.js +38 -21
- package/lib/web/app.js +610 -245
- package/lib/web/app_options.js +54 -34
- package/lib/web/base_viewer.js +359 -162
- package/lib/web/chromecom.js +159 -80
- package/lib/web/debugger.js +161 -17
- package/lib/web/download_manager.js +29 -11
- package/lib/web/firefox_print_service.js +16 -8
- package/lib/web/firefoxcom.js +127 -91
- package/lib/web/genericcom.js +50 -31
- package/lib/web/genericl10n.js +46 -34
- package/lib/web/grab_to_pan.js +25 -3
- package/lib/web/interfaces.js +108 -61
- package/lib/web/overlay_manager.js +67 -45
- package/lib/web/password_prompt.js +20 -12
- package/lib/web/pdf_attachment_viewer.js +37 -17
- package/lib/web/pdf_cursor_tools.js +38 -15
- package/lib/web/pdf_document_properties.js +65 -24
- package/lib/web/pdf_find_bar.js +48 -20
- package/lib/web/pdf_find_controller.js +290 -89
- package/lib/web/pdf_find_utils.js +19 -3
- package/lib/web/pdf_history.js +186 -49
- package/lib/web/pdf_link_service.js +127 -52
- package/lib/web/pdf_outline_viewer.js +71 -21
- package/lib/web/pdf_page_view.js +188 -63
- package/lib/web/pdf_presentation_mode.js +98 -33
- package/lib/web/pdf_print_service.js +54 -10
- package/lib/web/pdf_rendering_queue.js +26 -4
- package/lib/web/pdf_sidebar.js +116 -62
- package/lib/web/pdf_sidebar_resizer.js +41 -15
- package/lib/web/pdf_single_page_viewer.js +65 -68
- package/lib/web/pdf_thumbnail_view.js +102 -31
- package/lib/web/pdf_thumbnail_viewer.js +62 -22
- package/lib/web/pdf_viewer.component.js +111 -31
- package/lib/web/pdf_viewer.js +80 -60
- package/lib/web/preferences.js +61 -39
- package/lib/web/secondary_toolbar.js +101 -82
- package/lib/web/text_layer_builder.js +124 -69
- package/lib/web/toolbar.js +67 -27
- package/lib/web/ui_utils.js +284 -128
- package/lib/web/view_history.js +75 -51
- package/lib/web/viewer_compatibility.js +2 -1
- package/package.json +1 -1
- package/web/pdf_viewer.css +1 -1
- package/web/pdf_viewer.js +2200 -973
- package/web/pdf_viewer.js.map +1 -1
- package/lib/web/dom_events.js +0 -140
package/lib/core/worker.js
CHANGED
@@ -19,30 +19,40 @@
|
|
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.WorkerMessageHandler = exports.WorkerTask =
|
27
|
+
exports.WorkerMessageHandler = exports.WorkerTask = void 0;
|
28
28
|
|
29
|
-
var
|
29
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
30
30
|
|
31
|
-
var
|
31
|
+
var _util = require("../shared/util");
|
32
32
|
|
33
|
-
var
|
33
|
+
var _pdf_manager = require("./pdf_manager");
|
34
34
|
|
35
|
-
var
|
35
|
+
var _is_node = _interopRequireDefault(require("../shared/is_node"));
|
36
36
|
|
37
|
-
var
|
37
|
+
var _message_handler = require("../shared/message_handler");
|
38
38
|
|
39
|
-
var
|
39
|
+
var _primitives = require("./primitives");
|
40
40
|
|
41
|
-
|
41
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
42
42
|
|
43
|
-
|
43
|
+
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); }
|
44
44
|
|
45
|
-
function
|
45
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
46
|
+
|
47
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
48
|
+
|
49
|
+
function _iterableToArrayLimit(arr, i) { 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; }
|
50
|
+
|
51
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
52
|
+
|
53
|
+
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); } }
|
54
|
+
|
55
|
+
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); }); }; }
|
46
56
|
|
47
57
|
var WorkerTask = function WorkerTaskClosure() {
|
48
58
|
function WorkerTask(name) {
|
@@ -50,10 +60,12 @@ var WorkerTask = function WorkerTaskClosure() {
|
|
50
60
|
this.terminated = false;
|
51
61
|
this._capability = (0, _util.createPromiseCapability)();
|
52
62
|
}
|
63
|
+
|
53
64
|
WorkerTask.prototype = {
|
54
65
|
get finished() {
|
55
66
|
return this._capability.promise;
|
56
67
|
},
|
68
|
+
|
57
69
|
finish: function finish() {
|
58
70
|
this._capability.resolve();
|
59
71
|
},
|
@@ -68,7 +80,9 @@ var WorkerTask = function WorkerTaskClosure() {
|
|
68
80
|
};
|
69
81
|
return WorkerTask;
|
70
82
|
}();
|
71
|
-
|
83
|
+
|
84
|
+
exports.WorkerTask = WorkerTask;
|
85
|
+
|
72
86
|
var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
73
87
|
function PDFWorkerStream(msgHandler) {
|
74
88
|
this._msgHandler = msgHandler;
|
@@ -76,6 +90,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
76
90
|
this._fullRequestReader = null;
|
77
91
|
this._rangeRequestReaders = [];
|
78
92
|
}
|
93
|
+
|
79
94
|
PDFWorkerStream.prototype = {
|
80
95
|
getFullReader: function getFullReader() {
|
81
96
|
(0, _util.assert)(!this._fullRequestReader);
|
@@ -84,19 +99,24 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
84
99
|
},
|
85
100
|
getRangeReader: function getRangeReader(begin, end) {
|
86
101
|
var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
|
102
|
+
|
87
103
|
this._rangeRequestReaders.push(reader);
|
104
|
+
|
88
105
|
return reader;
|
89
106
|
},
|
90
107
|
cancelAllRequests: function cancelAllRequests(reason) {
|
91
108
|
if (this._fullRequestReader) {
|
92
109
|
this._fullRequestReader.cancel(reason);
|
93
110
|
}
|
111
|
+
|
94
112
|
var readers = this._rangeRequestReaders.slice(0);
|
113
|
+
|
95
114
|
readers.forEach(function (reader) {
|
96
115
|
reader.cancel(reason);
|
97
116
|
});
|
98
117
|
}
|
99
118
|
};
|
119
|
+
|
100
120
|
function PDFWorkerStreamReader(msgHandler) {
|
101
121
|
var _this = this;
|
102
122
|
|
@@ -104,7 +124,9 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
104
124
|
this._contentLength = null;
|
105
125
|
this._isRangeSupported = false;
|
106
126
|
this._isStreamingSupported = false;
|
127
|
+
|
107
128
|
var readableStream = this._msgHandler.sendWithStream('GetReader');
|
129
|
+
|
108
130
|
this._reader = readableStream.getReader();
|
109
131
|
this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
|
110
132
|
_this._isStreamingSupported = data.isStreamingSupported;
|
@@ -112,19 +134,24 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
112
134
|
_this._contentLength = data.contentLength;
|
113
135
|
});
|
114
136
|
}
|
137
|
+
|
115
138
|
PDFWorkerStreamReader.prototype = {
|
116
139
|
get headersReady() {
|
117
140
|
return this._headersReady;
|
118
141
|
},
|
142
|
+
|
119
143
|
get contentLength() {
|
120
144
|
return this._contentLength;
|
121
145
|
},
|
146
|
+
|
122
147
|
get isStreamingSupported() {
|
123
148
|
return this._isStreamingSupported;
|
124
149
|
},
|
150
|
+
|
125
151
|
get isRangeSupported() {
|
126
152
|
return this._isRangeSupported;
|
127
153
|
},
|
154
|
+
|
128
155
|
read: function read() {
|
129
156
|
return this._reader.read().then(function (_ref) {
|
130
157
|
var value = _ref.value,
|
@@ -136,6 +163,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
136
163
|
done: true
|
137
164
|
};
|
138
165
|
}
|
166
|
+
|
139
167
|
return {
|
140
168
|
value: value.buffer,
|
141
169
|
done: false
|
@@ -146,19 +174,24 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
146
174
|
this._reader.cancel(reason);
|
147
175
|
}
|
148
176
|
};
|
177
|
+
|
149
178
|
function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
|
150
179
|
this._msgHandler = msgHandler;
|
151
180
|
this.onProgress = null;
|
181
|
+
|
152
182
|
var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
|
153
183
|
begin: begin,
|
154
184
|
end: end
|
155
185
|
});
|
186
|
+
|
156
187
|
this._reader = readableStream.getReader();
|
157
188
|
}
|
189
|
+
|
158
190
|
PDFWorkerStreamRangeReader.prototype = {
|
159
191
|
get isStreamingSupported() {
|
160
192
|
return false;
|
161
193
|
},
|
194
|
+
|
162
195
|
read: function read() {
|
163
196
|
return this._reader.read().then(function (_ref2) {
|
164
197
|
var value = _ref2.value,
|
@@ -170,6 +203,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
170
203
|
done: true
|
171
204
|
};
|
172
205
|
}
|
206
|
+
|
173
207
|
return {
|
174
208
|
value: value.buffer,
|
175
209
|
done: false
|
@@ -182,6 +216,7 @@ var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
|
182
216
|
};
|
183
217
|
return PDFWorkerStream;
|
184
218
|
}();
|
219
|
+
|
185
220
|
var WorkerMessageHandler = {
|
186
221
|
setup: function setup(handler, port) {
|
187
222
|
var testMessageProcessed = false;
|
@@ -189,24 +224,30 @@ var WorkerMessageHandler = {
|
|
189
224
|
if (testMessageProcessed) {
|
190
225
|
return;
|
191
226
|
}
|
227
|
+
|
192
228
|
testMessageProcessed = true;
|
229
|
+
|
193
230
|
if (!(data instanceof Uint8Array)) {
|
194
231
|
handler.send('test', false);
|
195
232
|
return;
|
196
233
|
}
|
234
|
+
|
197
235
|
var supportTransfers = data[0] === 255;
|
198
236
|
handler.postMessageTransfers = supportTransfers;
|
199
237
|
var xhr = new XMLHttpRequest();
|
200
238
|
var responseExists = 'response' in xhr;
|
239
|
+
|
201
240
|
try {
|
202
241
|
xhr.responseType;
|
203
242
|
} catch (e) {
|
204
243
|
responseExists = false;
|
205
244
|
}
|
245
|
+
|
206
246
|
if (!responseExists) {
|
207
247
|
handler.send('test', false);
|
208
248
|
return;
|
209
249
|
}
|
250
|
+
|
210
251
|
handler.send('test', {
|
211
252
|
supportTypedArray: true,
|
212
253
|
supportTransfers: supportTransfers
|
@@ -225,56 +266,97 @@ var WorkerMessageHandler = {
|
|
225
266
|
var cancelXHRs = null;
|
226
267
|
var WorkerTasks = [];
|
227
268
|
var apiVersion = docParams.apiVersion;
|
228
|
-
var workerVersion = '2.
|
269
|
+
var workerVersion = '2.1.266';
|
270
|
+
|
229
271
|
if (apiVersion !== workerVersion) {
|
230
|
-
throw new Error(
|
272
|
+
throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\"."));
|
231
273
|
}
|
274
|
+
|
232
275
|
var docId = docParams.docId;
|
233
276
|
var docBaseUrl = docParams.docBaseUrl;
|
234
277
|
var workerHandlerName = docParams.docId + '_worker';
|
235
278
|
var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
|
236
279
|
handler.postMessageTransfers = docParams.postMessageTransfers;
|
280
|
+
|
237
281
|
function ensureNotTerminated() {
|
238
282
|
if (terminated) {
|
239
283
|
throw new Error('Worker was terminated');
|
240
284
|
}
|
241
285
|
}
|
286
|
+
|
242
287
|
function startWorkerTask(task) {
|
243
288
|
WorkerTasks.push(task);
|
244
289
|
}
|
290
|
+
|
245
291
|
function finishWorkerTask(task) {
|
246
292
|
task.finish();
|
247
293
|
var i = WorkerTasks.indexOf(task);
|
248
294
|
WorkerTasks.splice(i, 1);
|
249
295
|
}
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
296
|
+
|
297
|
+
function loadDocument(_x) {
|
298
|
+
return _loadDocument.apply(this, arguments);
|
299
|
+
}
|
300
|
+
|
301
|
+
function _loadDocument() {
|
302
|
+
_loadDocument = _asyncToGenerator(
|
303
|
+
/*#__PURE__*/
|
304
|
+
_regenerator.default.mark(function _callee(recoveryMode) {
|
305
|
+
var _ref6, _ref7, numPages, fingerprint;
|
306
|
+
|
307
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
308
|
+
while (1) {
|
309
|
+
switch (_context.prev = _context.next) {
|
310
|
+
case 0:
|
311
|
+
_context.next = 2;
|
312
|
+
return pdfManager.ensureDoc('checkHeader');
|
313
|
+
|
314
|
+
case 2:
|
315
|
+
_context.next = 4;
|
316
|
+
return pdfManager.ensureDoc('parseStartXRef');
|
317
|
+
|
318
|
+
case 4:
|
319
|
+
_context.next = 6;
|
320
|
+
return pdfManager.ensureDoc('parse', [recoveryMode]);
|
321
|
+
|
322
|
+
case 6:
|
323
|
+
if (recoveryMode) {
|
324
|
+
_context.next = 9;
|
325
|
+
break;
|
326
|
+
}
|
327
|
+
|
328
|
+
_context.next = 9;
|
329
|
+
return pdfManager.ensureDoc('checkFirstPage');
|
330
|
+
|
331
|
+
case 9:
|
332
|
+
_context.next = 11;
|
333
|
+
return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
|
334
|
+
|
335
|
+
case 11:
|
336
|
+
_ref6 = _context.sent;
|
337
|
+
_ref7 = _slicedToArray(_ref6, 2);
|
338
|
+
numPages = _ref7[0];
|
339
|
+
fingerprint = _ref7[1];
|
340
|
+
return _context.abrupt("return", {
|
341
|
+
numPages: numPages,
|
342
|
+
fingerprint: fingerprint
|
343
|
+
});
|
344
|
+
|
345
|
+
case 16:
|
346
|
+
case "end":
|
347
|
+
return _context.stop();
|
348
|
+
}
|
349
|
+
}
|
350
|
+
}, _callee, this);
|
351
|
+
}));
|
352
|
+
return _loadDocument.apply(this, arguments);
|
273
353
|
}
|
354
|
+
|
274
355
|
function getPdfManager(data, evaluatorOptions) {
|
275
356
|
var pdfManagerCapability = (0, _util.createPromiseCapability)();
|
276
357
|
var pdfManager;
|
277
358
|
var source = data.source;
|
359
|
+
|
278
360
|
if (source.data) {
|
279
361
|
try {
|
280
362
|
pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
|
@@ -282,33 +364,39 @@ var WorkerMessageHandler = {
|
|
282
364
|
} catch (ex) {
|
283
365
|
pdfManagerCapability.reject(ex);
|
284
366
|
}
|
367
|
+
|
285
368
|
return pdfManagerCapability.promise;
|
286
369
|
}
|
370
|
+
|
287
371
|
var pdfStream,
|
288
372
|
cachedChunks = [];
|
373
|
+
|
289
374
|
try {
|
290
375
|
pdfStream = new PDFWorkerStream(handler);
|
291
376
|
} catch (ex) {
|
292
377
|
pdfManagerCapability.reject(ex);
|
293
378
|
return pdfManagerCapability.promise;
|
294
379
|
}
|
380
|
+
|
295
381
|
var fullRequest = pdfStream.getFullReader();
|
296
382
|
fullRequest.headersReady.then(function () {
|
297
383
|
if (!fullRequest.isRangeSupported) {
|
298
384
|
return;
|
299
385
|
}
|
386
|
+
|
300
387
|
var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
|
301
388
|
pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
|
302
389
|
msgHandler: handler,
|
303
|
-
url: source.url,
|
304
390
|
password: source.password,
|
305
391
|
length: fullRequest.contentLength,
|
306
392
|
disableAutoFetch: disableAutoFetch,
|
307
393
|
rangeChunkSize: source.rangeChunkSize
|
308
394
|
}, evaluatorOptions, docBaseUrl);
|
395
|
+
|
309
396
|
for (var i = 0; i < cachedChunks.length; i++) {
|
310
397
|
pdfManager.sendProgressiveData(cachedChunks[i]);
|
311
398
|
}
|
399
|
+
|
312
400
|
cachedChunks = [];
|
313
401
|
pdfManagerCapability.resolve(pdfManager);
|
314
402
|
cancelXHRs = null;
|
@@ -317,66 +405,85 @@ var WorkerMessageHandler = {
|
|
317
405
|
cancelXHRs = null;
|
318
406
|
});
|
319
407
|
var loaded = 0;
|
408
|
+
|
320
409
|
var flushChunks = function flushChunks() {
|
321
410
|
var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
|
411
|
+
|
322
412
|
if (source.length && pdfFile.length !== source.length) {
|
323
413
|
(0, _util.warn)('reported HTTP length is different from actual');
|
324
414
|
}
|
415
|
+
|
325
416
|
try {
|
326
417
|
pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
|
327
418
|
pdfManagerCapability.resolve(pdfManager);
|
328
419
|
} catch (ex) {
|
329
420
|
pdfManagerCapability.reject(ex);
|
330
421
|
}
|
422
|
+
|
331
423
|
cachedChunks = [];
|
332
424
|
};
|
425
|
+
|
333
426
|
var readPromise = new Promise(function (resolve, reject) {
|
334
427
|
var readChunk = function readChunk(chunk) {
|
335
428
|
try {
|
336
429
|
ensureNotTerminated();
|
430
|
+
|
337
431
|
if (chunk.done) {
|
338
432
|
if (!pdfManager) {
|
339
433
|
flushChunks();
|
340
434
|
}
|
435
|
+
|
341
436
|
cancelXHRs = null;
|
342
437
|
return;
|
343
438
|
}
|
439
|
+
|
344
440
|
var data = chunk.value;
|
345
441
|
loaded += (0, _util.arrayByteLength)(data);
|
442
|
+
|
346
443
|
if (!fullRequest.isStreamingSupported) {
|
347
444
|
handler.send('DocProgress', {
|
348
445
|
loaded: loaded,
|
349
446
|
total: Math.max(loaded, fullRequest.contentLength || 0)
|
350
447
|
});
|
351
448
|
}
|
449
|
+
|
352
450
|
if (pdfManager) {
|
353
451
|
pdfManager.sendProgressiveData(data);
|
354
452
|
} else {
|
355
453
|
cachedChunks.push(data);
|
356
454
|
}
|
455
|
+
|
357
456
|
fullRequest.read().then(readChunk, reject);
|
358
457
|
} catch (e) {
|
359
458
|
reject(e);
|
360
459
|
}
|
361
460
|
};
|
461
|
+
|
362
462
|
fullRequest.read().then(readChunk, reject);
|
363
463
|
});
|
364
464
|
readPromise.catch(function (e) {
|
365
465
|
pdfManagerCapability.reject(e);
|
366
466
|
cancelXHRs = null;
|
367
467
|
});
|
468
|
+
|
368
469
|
cancelXHRs = function cancelXHRs() {
|
369
470
|
pdfStream.cancelAllRequests('abort');
|
370
471
|
};
|
472
|
+
|
371
473
|
return pdfManagerCapability.promise;
|
372
474
|
}
|
475
|
+
|
373
476
|
function setupDoc(data) {
|
374
477
|
function onSuccess(doc) {
|
375
478
|
ensureNotTerminated();
|
376
|
-
handler.send('GetDoc', {
|
479
|
+
handler.send('GetDoc', {
|
480
|
+
pdfInfo: doc
|
481
|
+
});
|
377
482
|
}
|
483
|
+
|
378
484
|
function onFailure(e) {
|
379
485
|
ensureNotTerminated();
|
486
|
+
|
380
487
|
if (e instanceof _util.PasswordException) {
|
381
488
|
var task = new WorkerTask('PasswordException: response ' + e.code);
|
382
489
|
startWorkerTask(task);
|
@@ -398,14 +505,17 @@ var WorkerMessageHandler = {
|
|
398
505
|
handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));
|
399
506
|
}
|
400
507
|
}
|
508
|
+
|
401
509
|
function pdfManagerReady() {
|
402
510
|
ensureNotTerminated();
|
403
511
|
loadDocument(false).then(onSuccess, function loadFailure(ex) {
|
404
512
|
ensureNotTerminated();
|
513
|
+
|
405
514
|
if (!(ex instanceof _util.XRefParseException)) {
|
406
515
|
onFailure(ex);
|
407
516
|
return;
|
408
517
|
}
|
518
|
+
|
409
519
|
pdfManager.requestLoadedStream();
|
410
520
|
pdfManager.onLoadedStream().then(function () {
|
411
521
|
ensureNotTerminated();
|
@@ -413,6 +523,7 @@ var WorkerMessageHandler = {
|
|
413
523
|
});
|
414
524
|
}, onFailure);
|
415
525
|
}
|
526
|
+
|
416
527
|
ensureNotTerminated();
|
417
528
|
var evaluatorOptions = {
|
418
529
|
forceDataSchema: data.disableCreateObjectURL,
|
@@ -427,20 +538,24 @@ var WorkerMessageHandler = {
|
|
427
538
|
newPdfManager.terminate();
|
428
539
|
throw new Error('Worker was terminated');
|
429
540
|
}
|
541
|
+
|
430
542
|
pdfManager = newPdfManager;
|
431
543
|
pdfManager.onLoadedStream().then(function (stream) {
|
432
|
-
handler.send('DataLoaded', {
|
544
|
+
handler.send('DataLoaded', {
|
545
|
+
length: stream.bytes.byteLength
|
546
|
+
});
|
433
547
|
});
|
434
548
|
}).then(pdfManagerReady, onFailure);
|
435
549
|
}
|
550
|
+
|
436
551
|
handler.on('GetPage', function wphSetupGetPage(data) {
|
437
552
|
return pdfManager.getPage(data.pageIndex).then(function (page) {
|
438
|
-
return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (
|
439
|
-
var
|
440
|
-
rotate =
|
441
|
-
ref =
|
442
|
-
userUnit =
|
443
|
-
view =
|
553
|
+
return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref3) {
|
554
|
+
var _ref4 = _slicedToArray(_ref3, 4),
|
555
|
+
rotate = _ref4[0],
|
556
|
+
ref = _ref4[1],
|
557
|
+
userUnit = _ref4[2],
|
558
|
+
view = _ref4[3];
|
444
559
|
|
445
560
|
return {
|
446
561
|
rotate: rotate,
|
@@ -468,6 +583,9 @@ var WorkerMessageHandler = {
|
|
468
583
|
handler.on('GetPageMode', function wphSetupGetPageMode(data) {
|
469
584
|
return pdfManager.ensureCatalog('pageMode');
|
470
585
|
});
|
586
|
+
handler.on('getOpenActionDestination', function (data) {
|
587
|
+
return pdfManager.ensureCatalog('openActionDestination');
|
588
|
+
});
|
471
589
|
handler.on('GetAttachments', function wphSetupGetAttachments(data) {
|
472
590
|
return pdfManager.ensureCatalog('attachments');
|
473
591
|
});
|
@@ -492,10 +610,9 @@ var WorkerMessageHandler = {
|
|
492
610
|
handler.on('GetStats', function wphSetupGetStats(data) {
|
493
611
|
return pdfManager.pdfDocument.xref.stats;
|
494
612
|
});
|
495
|
-
handler.on('GetAnnotations', function (
|
496
|
-
var pageIndex =
|
497
|
-
intent =
|
498
|
-
|
613
|
+
handler.on('GetAnnotations', function (_ref5) {
|
614
|
+
var pageIndex = _ref5.pageIndex,
|
615
|
+
intent = _ref5.intent;
|
499
616
|
return pdfManager.getPage(pageIndex).then(function (page) {
|
500
617
|
return page.getAnnotationsData(intent);
|
501
618
|
});
|
@@ -517,28 +634,34 @@ var WorkerMessageHandler = {
|
|
517
634
|
(0, _util.info)('page=' + pageNum + ' - getOperatorList: time=' + (Date.now() - start) + 'ms, len=' + operatorList.totalLength);
|
518
635
|
}, function (e) {
|
519
636
|
finishWorkerTask(task);
|
637
|
+
|
520
638
|
if (task.terminated) {
|
521
639
|
return;
|
522
640
|
}
|
523
|
-
|
641
|
+
|
642
|
+
handler.send('UnsupportedFeature', {
|
643
|
+
featureId: _util.UNSUPPORTED_FEATURES.unknown
|
644
|
+
});
|
524
645
|
var minimumStackMessage = 'worker.js: while trying to getPage() and getOperatorList()';
|
525
646
|
var wrappedException;
|
647
|
+
|
526
648
|
if (typeof e === 'string') {
|
527
649
|
wrappedException = {
|
528
650
|
message: e,
|
529
651
|
stack: minimumStackMessage
|
530
652
|
};
|
531
|
-
} else if (
|
653
|
+
} else if (_typeof(e) === 'object') {
|
532
654
|
wrappedException = {
|
533
655
|
message: e.message || e.toString(),
|
534
656
|
stack: e.stack || minimumStackMessage
|
535
657
|
};
|
536
658
|
} else {
|
537
659
|
wrappedException = {
|
538
|
-
message: 'Unknown exception type: ' +
|
660
|
+
message: 'Unknown exception type: ' + _typeof(e),
|
539
661
|
stack: minimumStackMessage
|
540
662
|
};
|
541
663
|
}
|
664
|
+
|
542
665
|
handler.send('PageError', {
|
543
666
|
pageNum: pageNum,
|
544
667
|
error: wrappedException,
|
@@ -549,8 +672,11 @@ var WorkerMessageHandler = {
|
|
549
672
|
}, this);
|
550
673
|
handler.on('GetTextContent', function wphExtractText(data, sink) {
|
551
674
|
var pageIndex = data.pageIndex;
|
675
|
+
|
552
676
|
sink.onPull = function (desiredSize) {};
|
677
|
+
|
553
678
|
sink.onCancel = function (reason) {};
|
679
|
+
|
554
680
|
pdfManager.getPage(pageIndex).then(function (page) {
|
555
681
|
var task = new WorkerTask('GetTextContent: page ' + pageIndex);
|
556
682
|
startWorkerTask(task);
|
@@ -568,26 +694,34 @@ var WorkerMessageHandler = {
|
|
568
694
|
sink.close();
|
569
695
|
}, function (reason) {
|
570
696
|
finishWorkerTask(task);
|
697
|
+
|
571
698
|
if (task.terminated) {
|
572
699
|
return;
|
573
700
|
}
|
701
|
+
|
574
702
|
sink.error(reason);
|
575
703
|
throw reason;
|
576
704
|
});
|
577
705
|
});
|
578
706
|
});
|
707
|
+
handler.on('FontFallback', function (data) {
|
708
|
+
return pdfManager.fontFallback(data.id, handler);
|
709
|
+
});
|
579
710
|
handler.on('Cleanup', function wphCleanup(data) {
|
580
711
|
return pdfManager.cleanup();
|
581
712
|
});
|
582
713
|
handler.on('Terminate', function wphTerminate(data) {
|
583
714
|
terminated = true;
|
715
|
+
|
584
716
|
if (pdfManager) {
|
585
717
|
pdfManager.terminate();
|
586
718
|
pdfManager = null;
|
587
719
|
}
|
720
|
+
|
588
721
|
if (cancelXHRs) {
|
589
722
|
cancelXHRs();
|
590
723
|
}
|
724
|
+
|
591
725
|
var waitOn = [];
|
592
726
|
WorkerTasks.forEach(function (task) {
|
593
727
|
waitOn.push(task.finished);
|
@@ -610,11 +744,12 @@ var WorkerMessageHandler = {
|
|
610
744
|
handler.send('ready', null);
|
611
745
|
}
|
612
746
|
};
|
747
|
+
exports.WorkerMessageHandler = WorkerMessageHandler;
|
748
|
+
|
613
749
|
function isMessagePort(maybePort) {
|
614
750
|
return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
|
615
751
|
}
|
616
|
-
|
752
|
+
|
753
|
+
if (typeof window === 'undefined' && !(0, _is_node.default)() && typeof self !== 'undefined' && isMessagePort(self)) {
|
617
754
|
WorkerMessageHandler.initializeFromPort(self);
|
618
|
-
}
|
619
|
-
exports.WorkerTask = WorkerTask;
|
620
|
-
exports.WorkerMessageHandler = WorkerMessageHandler;
|
755
|
+
}
|