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/core/worker.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,30 +19,42 @@
|
|
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 _primitives = require("./primitives");
|
34
34
|
|
35
|
-
var _pdf_manager = require(
|
35
|
+
var _pdf_manager = require("./pdf_manager");
|
36
36
|
|
37
|
-
var _is_node = require(
|
37
|
+
var _is_node = _interopRequireDefault(require("../shared/is_node"));
|
38
38
|
|
39
|
-
var
|
39
|
+
var _message_handler = require("../shared/message_handler");
|
40
40
|
|
41
|
-
var
|
41
|
+
var _worker_stream = require("./worker_stream");
|
42
42
|
|
43
|
-
var
|
43
|
+
var _core_utils = require("./core_utils");
|
44
44
|
|
45
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
45
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
46
|
+
|
47
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
|
48
|
+
|
49
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
|
50
|
+
|
51
|
+
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; }
|
52
|
+
|
53
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
54
|
+
|
55
|
+
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
|
+
|
57
|
+
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
58
|
|
47
59
|
var WorkerTask = function WorkerTaskClosure() {
|
48
60
|
function WorkerTask(name) {
|
@@ -50,10 +62,12 @@ var WorkerTask = function WorkerTaskClosure() {
|
|
50
62
|
this.terminated = false;
|
51
63
|
this._capability = (0, _util.createPromiseCapability)();
|
52
64
|
}
|
65
|
+
|
53
66
|
WorkerTask.prototype = {
|
54
67
|
get finished() {
|
55
68
|
return this._capability.promise;
|
56
69
|
},
|
70
|
+
|
57
71
|
finish: function finish() {
|
58
72
|
this._capability.resolve();
|
59
73
|
},
|
@@ -68,120 +82,8 @@ var WorkerTask = function WorkerTaskClosure() {
|
|
68
82
|
};
|
69
83
|
return WorkerTask;
|
70
84
|
}();
|
71
|
-
;
|
72
|
-
var PDFWorkerStream = function PDFWorkerStreamClosure() {
|
73
|
-
function PDFWorkerStream(msgHandler) {
|
74
|
-
this._msgHandler = msgHandler;
|
75
|
-
this._contentLength = null;
|
76
|
-
this._fullRequestReader = null;
|
77
|
-
this._rangeRequestReaders = [];
|
78
|
-
}
|
79
|
-
PDFWorkerStream.prototype = {
|
80
|
-
getFullReader: function getFullReader() {
|
81
|
-
(0, _util.assert)(!this._fullRequestReader);
|
82
|
-
this._fullRequestReader = new PDFWorkerStreamReader(this._msgHandler);
|
83
|
-
return this._fullRequestReader;
|
84
|
-
},
|
85
|
-
getRangeReader: function getRangeReader(begin, end) {
|
86
|
-
var reader = new PDFWorkerStreamRangeReader(begin, end, this._msgHandler);
|
87
|
-
this._rangeRequestReaders.push(reader);
|
88
|
-
return reader;
|
89
|
-
},
|
90
|
-
cancelAllRequests: function cancelAllRequests(reason) {
|
91
|
-
if (this._fullRequestReader) {
|
92
|
-
this._fullRequestReader.cancel(reason);
|
93
|
-
}
|
94
|
-
var readers = this._rangeRequestReaders.slice(0);
|
95
|
-
readers.forEach(function (reader) {
|
96
|
-
reader.cancel(reason);
|
97
|
-
});
|
98
|
-
}
|
99
|
-
};
|
100
|
-
function PDFWorkerStreamReader(msgHandler) {
|
101
|
-
var _this = this;
|
102
|
-
|
103
|
-
this._msgHandler = msgHandler;
|
104
|
-
this._contentLength = null;
|
105
|
-
this._isRangeSupported = false;
|
106
|
-
this._isStreamingSupported = false;
|
107
|
-
var readableStream = this._msgHandler.sendWithStream('GetReader');
|
108
|
-
this._reader = readableStream.getReader();
|
109
|
-
this._headersReady = this._msgHandler.sendWithPromise('ReaderHeadersReady').then(function (data) {
|
110
|
-
_this._isStreamingSupported = data.isStreamingSupported;
|
111
|
-
_this._isRangeSupported = data.isRangeSupported;
|
112
|
-
_this._contentLength = data.contentLength;
|
113
|
-
});
|
114
|
-
}
|
115
|
-
PDFWorkerStreamReader.prototype = {
|
116
|
-
get headersReady() {
|
117
|
-
return this._headersReady;
|
118
|
-
},
|
119
|
-
get contentLength() {
|
120
|
-
return this._contentLength;
|
121
|
-
},
|
122
|
-
get isStreamingSupported() {
|
123
|
-
return this._isStreamingSupported;
|
124
|
-
},
|
125
|
-
get isRangeSupported() {
|
126
|
-
return this._isRangeSupported;
|
127
|
-
},
|
128
|
-
read: function read() {
|
129
|
-
return this._reader.read().then(function (_ref) {
|
130
|
-
var value = _ref.value,
|
131
|
-
done = _ref.done;
|
132
85
|
|
133
|
-
|
134
|
-
return {
|
135
|
-
value: undefined,
|
136
|
-
done: true
|
137
|
-
};
|
138
|
-
}
|
139
|
-
return {
|
140
|
-
value: value.buffer,
|
141
|
-
done: false
|
142
|
-
};
|
143
|
-
});
|
144
|
-
},
|
145
|
-
cancel: function cancel(reason) {
|
146
|
-
this._reader.cancel(reason);
|
147
|
-
}
|
148
|
-
};
|
149
|
-
function PDFWorkerStreamRangeReader(begin, end, msgHandler) {
|
150
|
-
this._msgHandler = msgHandler;
|
151
|
-
this.onProgress = null;
|
152
|
-
var readableStream = this._msgHandler.sendWithStream('GetRangeReader', {
|
153
|
-
begin: begin,
|
154
|
-
end: end
|
155
|
-
});
|
156
|
-
this._reader = readableStream.getReader();
|
157
|
-
}
|
158
|
-
PDFWorkerStreamRangeReader.prototype = {
|
159
|
-
get isStreamingSupported() {
|
160
|
-
return false;
|
161
|
-
},
|
162
|
-
read: function read() {
|
163
|
-
return this._reader.read().then(function (_ref2) {
|
164
|
-
var value = _ref2.value,
|
165
|
-
done = _ref2.done;
|
166
|
-
|
167
|
-
if (done) {
|
168
|
-
return {
|
169
|
-
value: undefined,
|
170
|
-
done: true
|
171
|
-
};
|
172
|
-
}
|
173
|
-
return {
|
174
|
-
value: value.buffer,
|
175
|
-
done: false
|
176
|
-
};
|
177
|
-
});
|
178
|
-
},
|
179
|
-
cancel: function cancel(reason) {
|
180
|
-
this._reader.cancel(reason);
|
181
|
-
}
|
182
|
-
};
|
183
|
-
return PDFWorkerStream;
|
184
|
-
}();
|
86
|
+
exports.WorkerTask = WorkerTask;
|
185
87
|
var WorkerMessageHandler = {
|
186
88
|
setup: function setup(handler, port) {
|
187
89
|
var testMessageProcessed = false;
|
@@ -189,26 +91,17 @@ var WorkerMessageHandler = {
|
|
189
91
|
if (testMessageProcessed) {
|
190
92
|
return;
|
191
93
|
}
|
94
|
+
|
192
95
|
testMessageProcessed = true;
|
96
|
+
|
193
97
|
if (!(data instanceof Uint8Array)) {
|
194
|
-
handler.send('test',
|
98
|
+
handler.send('test', null);
|
195
99
|
return;
|
196
100
|
}
|
101
|
+
|
197
102
|
var supportTransfers = data[0] === 255;
|
198
103
|
handler.postMessageTransfers = supportTransfers;
|
199
|
-
var xhr = new XMLHttpRequest();
|
200
|
-
var responseExists = 'response' in xhr;
|
201
|
-
try {
|
202
|
-
xhr.responseType;
|
203
|
-
} catch (e) {
|
204
|
-
responseExists = false;
|
205
|
-
}
|
206
|
-
if (!responseExists) {
|
207
|
-
handler.send('test', false);
|
208
|
-
return;
|
209
|
-
}
|
210
104
|
handler.send('test', {
|
211
|
-
supportTypedArray: true,
|
212
105
|
supportTransfers: supportTransfers
|
213
106
|
});
|
214
107
|
});
|
@@ -224,57 +117,99 @@ var WorkerMessageHandler = {
|
|
224
117
|
var terminated = false;
|
225
118
|
var cancelXHRs = null;
|
226
119
|
var WorkerTasks = [];
|
120
|
+
var verbosity = (0, _util.getVerbosityLevel)();
|
227
121
|
var apiVersion = docParams.apiVersion;
|
228
|
-
var workerVersion = '2.
|
229
|
-
|
230
|
-
|
122
|
+
var workerVersion = '2.3.200';
|
123
|
+
|
124
|
+
if (apiVersion !== workerVersion) {
|
125
|
+
throw new Error("The API version \"".concat(apiVersion, "\" does not match ") + "the Worker version \"".concat(workerVersion, "\"."));
|
231
126
|
}
|
127
|
+
|
232
128
|
var docId = docParams.docId;
|
233
129
|
var docBaseUrl = docParams.docBaseUrl;
|
234
130
|
var workerHandlerName = docParams.docId + '_worker';
|
235
131
|
var handler = new _message_handler.MessageHandler(workerHandlerName, docId, port);
|
236
132
|
handler.postMessageTransfers = docParams.postMessageTransfers;
|
133
|
+
|
237
134
|
function ensureNotTerminated() {
|
238
135
|
if (terminated) {
|
239
136
|
throw new Error('Worker was terminated');
|
240
137
|
}
|
241
138
|
}
|
139
|
+
|
242
140
|
function startWorkerTask(task) {
|
243
141
|
WorkerTasks.push(task);
|
244
142
|
}
|
143
|
+
|
245
144
|
function finishWorkerTask(task) {
|
246
145
|
task.finish();
|
247
146
|
var i = WorkerTasks.indexOf(task);
|
248
147
|
WorkerTasks.splice(i, 1);
|
249
148
|
}
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
149
|
+
|
150
|
+
function loadDocument(_x) {
|
151
|
+
return _loadDocument.apply(this, arguments);
|
152
|
+
}
|
153
|
+
|
154
|
+
function _loadDocument() {
|
155
|
+
_loadDocument = _asyncToGenerator(
|
156
|
+
/*#__PURE__*/
|
157
|
+
_regenerator["default"].mark(function _callee(recoveryMode) {
|
158
|
+
var _ref4, _ref5, numPages, fingerprint;
|
159
|
+
|
160
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
161
|
+
while (1) {
|
162
|
+
switch (_context.prev = _context.next) {
|
163
|
+
case 0:
|
164
|
+
_context.next = 2;
|
165
|
+
return pdfManager.ensureDoc('checkHeader');
|
166
|
+
|
167
|
+
case 2:
|
168
|
+
_context.next = 4;
|
169
|
+
return pdfManager.ensureDoc('parseStartXRef');
|
170
|
+
|
171
|
+
case 4:
|
172
|
+
_context.next = 6;
|
173
|
+
return pdfManager.ensureDoc('parse', [recoveryMode]);
|
174
|
+
|
175
|
+
case 6:
|
176
|
+
if (recoveryMode) {
|
177
|
+
_context.next = 9;
|
178
|
+
break;
|
179
|
+
}
|
180
|
+
|
181
|
+
_context.next = 9;
|
182
|
+
return pdfManager.ensureDoc('checkFirstPage');
|
183
|
+
|
184
|
+
case 9:
|
185
|
+
_context.next = 11;
|
186
|
+
return Promise.all([pdfManager.ensureDoc('numPages'), pdfManager.ensureDoc('fingerprint')]);
|
187
|
+
|
188
|
+
case 11:
|
189
|
+
_ref4 = _context.sent;
|
190
|
+
_ref5 = _slicedToArray(_ref4, 2);
|
191
|
+
numPages = _ref5[0];
|
192
|
+
fingerprint = _ref5[1];
|
193
|
+
return _context.abrupt("return", {
|
194
|
+
numPages: numPages,
|
195
|
+
fingerprint: fingerprint
|
196
|
+
});
|
197
|
+
|
198
|
+
case 16:
|
199
|
+
case "end":
|
200
|
+
return _context.stop();
|
201
|
+
}
|
202
|
+
}
|
203
|
+
}, _callee);
|
204
|
+
}));
|
205
|
+
return _loadDocument.apply(this, arguments);
|
273
206
|
}
|
207
|
+
|
274
208
|
function getPdfManager(data, evaluatorOptions) {
|
275
209
|
var pdfManagerCapability = (0, _util.createPromiseCapability)();
|
276
210
|
var pdfManager;
|
277
211
|
var source = data.source;
|
212
|
+
|
278
213
|
if (source.data) {
|
279
214
|
try {
|
280
215
|
pdfManager = new _pdf_manager.LocalPdfManager(docId, source.data, source.password, evaluatorOptions, docBaseUrl);
|
@@ -282,101 +217,126 @@ var WorkerMessageHandler = {
|
|
282
217
|
} catch (ex) {
|
283
218
|
pdfManagerCapability.reject(ex);
|
284
219
|
}
|
220
|
+
|
285
221
|
return pdfManagerCapability.promise;
|
286
222
|
}
|
223
|
+
|
287
224
|
var pdfStream,
|
288
225
|
cachedChunks = [];
|
226
|
+
|
289
227
|
try {
|
290
|
-
pdfStream = new PDFWorkerStream(handler);
|
228
|
+
pdfStream = new _worker_stream.PDFWorkerStream(handler);
|
291
229
|
} catch (ex) {
|
292
230
|
pdfManagerCapability.reject(ex);
|
293
231
|
return pdfManagerCapability.promise;
|
294
232
|
}
|
233
|
+
|
295
234
|
var fullRequest = pdfStream.getFullReader();
|
296
235
|
fullRequest.headersReady.then(function () {
|
297
236
|
if (!fullRequest.isRangeSupported) {
|
298
237
|
return;
|
299
238
|
}
|
239
|
+
|
300
240
|
var disableAutoFetch = source.disableAutoFetch || fullRequest.isStreamingSupported;
|
301
241
|
pdfManager = new _pdf_manager.NetworkPdfManager(docId, pdfStream, {
|
302
242
|
msgHandler: handler,
|
303
|
-
url: source.url,
|
304
243
|
password: source.password,
|
305
244
|
length: fullRequest.contentLength,
|
306
245
|
disableAutoFetch: disableAutoFetch,
|
307
246
|
rangeChunkSize: source.rangeChunkSize
|
308
247
|
}, evaluatorOptions, docBaseUrl);
|
248
|
+
|
309
249
|
for (var i = 0; i < cachedChunks.length; i++) {
|
310
250
|
pdfManager.sendProgressiveData(cachedChunks[i]);
|
311
251
|
}
|
252
|
+
|
312
253
|
cachedChunks = [];
|
313
254
|
pdfManagerCapability.resolve(pdfManager);
|
314
255
|
cancelXHRs = null;
|
315
|
-
})
|
256
|
+
})["catch"](function (reason) {
|
316
257
|
pdfManagerCapability.reject(reason);
|
317
258
|
cancelXHRs = null;
|
318
259
|
});
|
319
260
|
var loaded = 0;
|
261
|
+
|
320
262
|
var flushChunks = function flushChunks() {
|
321
263
|
var pdfFile = (0, _util.arraysToBytes)(cachedChunks);
|
264
|
+
|
322
265
|
if (source.length && pdfFile.length !== source.length) {
|
323
266
|
(0, _util.warn)('reported HTTP length is different from actual');
|
324
267
|
}
|
268
|
+
|
325
269
|
try {
|
326
270
|
pdfManager = new _pdf_manager.LocalPdfManager(docId, pdfFile, source.password, evaluatorOptions, docBaseUrl);
|
327
271
|
pdfManagerCapability.resolve(pdfManager);
|
328
272
|
} catch (ex) {
|
329
273
|
pdfManagerCapability.reject(ex);
|
330
274
|
}
|
275
|
+
|
331
276
|
cachedChunks = [];
|
332
277
|
};
|
278
|
+
|
333
279
|
var readPromise = new Promise(function (resolve, reject) {
|
334
280
|
var readChunk = function readChunk(chunk) {
|
335
281
|
try {
|
336
282
|
ensureNotTerminated();
|
283
|
+
|
337
284
|
if (chunk.done) {
|
338
285
|
if (!pdfManager) {
|
339
286
|
flushChunks();
|
340
287
|
}
|
288
|
+
|
341
289
|
cancelXHRs = null;
|
342
290
|
return;
|
343
291
|
}
|
292
|
+
|
344
293
|
var data = chunk.value;
|
345
294
|
loaded += (0, _util.arrayByteLength)(data);
|
295
|
+
|
346
296
|
if (!fullRequest.isStreamingSupported) {
|
347
297
|
handler.send('DocProgress', {
|
348
298
|
loaded: loaded,
|
349
299
|
total: Math.max(loaded, fullRequest.contentLength || 0)
|
350
300
|
});
|
351
301
|
}
|
302
|
+
|
352
303
|
if (pdfManager) {
|
353
304
|
pdfManager.sendProgressiveData(data);
|
354
305
|
} else {
|
355
306
|
cachedChunks.push(data);
|
356
307
|
}
|
308
|
+
|
357
309
|
fullRequest.read().then(readChunk, reject);
|
358
310
|
} catch (e) {
|
359
311
|
reject(e);
|
360
312
|
}
|
361
313
|
};
|
314
|
+
|
362
315
|
fullRequest.read().then(readChunk, reject);
|
363
316
|
});
|
364
|
-
readPromise
|
317
|
+
readPromise["catch"](function (e) {
|
365
318
|
pdfManagerCapability.reject(e);
|
366
319
|
cancelXHRs = null;
|
367
320
|
});
|
368
|
-
|
369
|
-
|
321
|
+
|
322
|
+
cancelXHRs = function cancelXHRs(reason) {
|
323
|
+
pdfStream.cancelAllRequests(reason);
|
370
324
|
};
|
325
|
+
|
371
326
|
return pdfManagerCapability.promise;
|
372
327
|
}
|
328
|
+
|
373
329
|
function setupDoc(data) {
|
374
330
|
function onSuccess(doc) {
|
375
331
|
ensureNotTerminated();
|
376
|
-
handler.send('GetDoc', {
|
332
|
+
handler.send('GetDoc', {
|
333
|
+
pdfInfo: doc
|
334
|
+
});
|
377
335
|
}
|
336
|
+
|
378
337
|
function onFailure(e) {
|
379
338
|
ensureNotTerminated();
|
339
|
+
|
380
340
|
if (e instanceof _util.PasswordException) {
|
381
341
|
var task = new WorkerTask('PasswordException: response ' + e.code);
|
382
342
|
startWorkerTask(task);
|
@@ -384,7 +344,7 @@ var WorkerMessageHandler = {
|
|
384
344
|
finishWorkerTask(task);
|
385
345
|
pdfManager.updatePassword(data.password);
|
386
346
|
pdfManagerReady();
|
387
|
-
})
|
347
|
+
})["catch"](function (boundException) {
|
388
348
|
finishWorkerTask(task);
|
389
349
|
handler.send('PasswordException', boundException);
|
390
350
|
}.bind(null, e));
|
@@ -398,14 +358,17 @@ var WorkerMessageHandler = {
|
|
398
358
|
handler.send('UnknownError', new _util.UnknownErrorException(e.message, e.toString()));
|
399
359
|
}
|
400
360
|
}
|
361
|
+
|
401
362
|
function pdfManagerReady() {
|
402
363
|
ensureNotTerminated();
|
403
364
|
loadDocument(false).then(onSuccess, function loadFailure(ex) {
|
404
365
|
ensureNotTerminated();
|
405
|
-
|
366
|
+
|
367
|
+
if (!(ex instanceof _core_utils.XRefParseException)) {
|
406
368
|
onFailure(ex);
|
407
369
|
return;
|
408
370
|
}
|
371
|
+
|
409
372
|
pdfManager.requestLoadedStream();
|
410
373
|
pdfManager.onLoadedStream().then(function () {
|
411
374
|
ensureNotTerminated();
|
@@ -413,6 +376,7 @@ var WorkerMessageHandler = {
|
|
413
376
|
});
|
414
377
|
}, onFailure);
|
415
378
|
}
|
379
|
+
|
416
380
|
ensureNotTerminated();
|
417
381
|
var evaluatorOptions = {
|
418
382
|
forceDataSchema: data.disableCreateObjectURL,
|
@@ -424,34 +388,40 @@ var WorkerMessageHandler = {
|
|
424
388
|
};
|
425
389
|
getPdfManager(data, evaluatorOptions).then(function (newPdfManager) {
|
426
390
|
if (terminated) {
|
427
|
-
newPdfManager.terminate();
|
391
|
+
newPdfManager.terminate(new _util.AbortException('Worker was terminated.'));
|
428
392
|
throw new Error('Worker was terminated');
|
429
393
|
}
|
394
|
+
|
430
395
|
pdfManager = newPdfManager;
|
431
|
-
handler.send('PDFManagerReady', null);
|
432
396
|
pdfManager.onLoadedStream().then(function (stream) {
|
433
|
-
handler.send('DataLoaded', {
|
397
|
+
handler.send('DataLoaded', {
|
398
|
+
length: stream.bytes.byteLength
|
399
|
+
});
|
434
400
|
});
|
435
401
|
}).then(pdfManagerReady, onFailure);
|
436
402
|
}
|
403
|
+
|
437
404
|
handler.on('GetPage', function wphSetupGetPage(data) {
|
438
405
|
return pdfManager.getPage(data.pageIndex).then(function (page) {
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
406
|
+
return Promise.all([pdfManager.ensure(page, 'rotate'), pdfManager.ensure(page, 'ref'), pdfManager.ensure(page, 'userUnit'), pdfManager.ensure(page, 'view')]).then(function (_ref) {
|
407
|
+
var _ref2 = _slicedToArray(_ref, 4),
|
408
|
+
rotate = _ref2[0],
|
409
|
+
ref = _ref2[1],
|
410
|
+
userUnit = _ref2[2],
|
411
|
+
view = _ref2[3];
|
412
|
+
|
444
413
|
return {
|
445
|
-
rotate:
|
446
|
-
ref:
|
447
|
-
userUnit:
|
448
|
-
view:
|
414
|
+
rotate: rotate,
|
415
|
+
ref: ref,
|
416
|
+
userUnit: userUnit,
|
417
|
+
view: view
|
449
418
|
};
|
450
419
|
});
|
451
420
|
});
|
452
421
|
});
|
453
422
|
handler.on('GetPageIndex', function wphSetupGetPageIndex(data) {
|
454
|
-
var ref =
|
423
|
+
var ref = _primitives.Ref.get(data.ref.num, data.ref.gen);
|
424
|
+
|
455
425
|
var catalog = pdfManager.pdfDocument.catalog;
|
456
426
|
return catalog.getPageIndex(ref);
|
457
427
|
});
|
@@ -464,9 +434,18 @@ var WorkerMessageHandler = {
|
|
464
434
|
handler.on('GetPageLabels', function wphSetupGetPageLabels(data) {
|
465
435
|
return pdfManager.ensureCatalog('pageLabels');
|
466
436
|
});
|
437
|
+
handler.on('GetPageLayout', function wphSetupGetPageLayout(data) {
|
438
|
+
return pdfManager.ensureCatalog('pageLayout');
|
439
|
+
});
|
467
440
|
handler.on('GetPageMode', function wphSetupGetPageMode(data) {
|
468
441
|
return pdfManager.ensureCatalog('pageMode');
|
469
442
|
});
|
443
|
+
handler.on('GetViewerPreferences', function (data) {
|
444
|
+
return pdfManager.ensureCatalog('viewerPreferences');
|
445
|
+
});
|
446
|
+
handler.on('GetOpenActionDestination', function (data) {
|
447
|
+
return pdfManager.ensureCatalog('openActionDestination');
|
448
|
+
});
|
470
449
|
handler.on('GetAttachments', function wphSetupGetAttachments(data) {
|
471
450
|
return pdfManager.ensureCatalog('attachments');
|
472
451
|
});
|
@@ -476,6 +455,9 @@ var WorkerMessageHandler = {
|
|
476
455
|
handler.on('GetOutline', function wphSetupGetOutline(data) {
|
477
456
|
return pdfManager.ensureCatalog('documentOutline');
|
478
457
|
});
|
458
|
+
handler.on('GetPermissions', function (data) {
|
459
|
+
return pdfManager.ensureCatalog('permissions');
|
460
|
+
});
|
479
461
|
handler.on('GetMetadata', function wphSetupGetMetadata(data) {
|
480
462
|
return Promise.all([pdfManager.ensureDoc('documentInfo'), pdfManager.ensureCatalog('metadata')]);
|
481
463
|
});
|
@@ -488,67 +470,58 @@ var WorkerMessageHandler = {
|
|
488
470
|
handler.on('GetStats', function wphSetupGetStats(data) {
|
489
471
|
return pdfManager.pdfDocument.xref.stats;
|
490
472
|
});
|
491
|
-
handler.on('GetAnnotations', function
|
492
|
-
|
493
|
-
|
473
|
+
handler.on('GetAnnotations', function (_ref3) {
|
474
|
+
var pageIndex = _ref3.pageIndex,
|
475
|
+
intent = _ref3.intent;
|
476
|
+
return pdfManager.getPage(pageIndex).then(function (page) {
|
477
|
+
return page.getAnnotationsData(intent);
|
494
478
|
});
|
495
479
|
});
|
496
|
-
handler.on('
|
480
|
+
handler.on('GetOperatorList', function wphSetupRenderPage(data, sink) {
|
497
481
|
var pageIndex = data.pageIndex;
|
498
482
|
pdfManager.getPage(pageIndex).then(function (page) {
|
499
|
-
var task = new WorkerTask(
|
483
|
+
var task = new WorkerTask("GetOperatorList: page ".concat(pageIndex));
|
500
484
|
startWorkerTask(task);
|
501
|
-
var
|
502
|
-
var start = Date.now();
|
485
|
+
var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
503
486
|
page.getOperatorList({
|
504
487
|
handler: handler,
|
488
|
+
sink: sink,
|
505
489
|
task: task,
|
506
490
|
intent: data.intent,
|
507
491
|
renderInteractiveForms: data.renderInteractiveForms
|
508
|
-
}).then(function (
|
492
|
+
}).then(function (operatorListInfo) {
|
509
493
|
finishWorkerTask(task);
|
510
|
-
|
511
|
-
|
494
|
+
|
495
|
+
if (start) {
|
496
|
+
(0, _util.info)("page=".concat(pageIndex + 1, " - getOperatorList: time=") + "".concat(Date.now() - start, "ms, len=").concat(operatorListInfo.length));
|
497
|
+
}
|
498
|
+
|
499
|
+
sink.close();
|
500
|
+
}, function (reason) {
|
512
501
|
finishWorkerTask(task);
|
502
|
+
|
513
503
|
if (task.terminated) {
|
514
504
|
return;
|
515
505
|
}
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
if (typeof e === 'string') {
|
520
|
-
wrappedException = {
|
521
|
-
message: e,
|
522
|
-
stack: minimumStackMessage
|
523
|
-
};
|
524
|
-
} else if ((typeof e === 'undefined' ? 'undefined' : _typeof(e)) === 'object') {
|
525
|
-
wrappedException = {
|
526
|
-
message: e.message || e.toString(),
|
527
|
-
stack: e.stack || minimumStackMessage
|
528
|
-
};
|
529
|
-
} else {
|
530
|
-
wrappedException = {
|
531
|
-
message: 'Unknown exception type: ' + (typeof e === 'undefined' ? 'undefined' : _typeof(e)),
|
532
|
-
stack: minimumStackMessage
|
533
|
-
};
|
534
|
-
}
|
535
|
-
handler.send('PageError', {
|
536
|
-
pageNum: pageNum,
|
537
|
-
error: wrappedException,
|
538
|
-
intent: data.intent
|
506
|
+
|
507
|
+
handler.send('UnsupportedFeature', {
|
508
|
+
featureId: _util.UNSUPPORTED_FEATURES.unknown
|
539
509
|
});
|
510
|
+
sink.error(reason);
|
540
511
|
});
|
541
512
|
});
|
542
513
|
}, this);
|
543
514
|
handler.on('GetTextContent', function wphExtractText(data, sink) {
|
544
515
|
var pageIndex = data.pageIndex;
|
516
|
+
|
545
517
|
sink.onPull = function (desiredSize) {};
|
518
|
+
|
546
519
|
sink.onCancel = function (reason) {};
|
520
|
+
|
547
521
|
pdfManager.getPage(pageIndex).then(function (page) {
|
548
522
|
var task = new WorkerTask('GetTextContent: page ' + pageIndex);
|
549
523
|
startWorkerTask(task);
|
550
|
-
var
|
551
|
-
var start = Date.now();
|
524
|
+
var start = verbosity >= _util.VerbosityLevel.INFOS ? Date.now() : 0;
|
552
525
|
page.extractTextContent({
|
553
526
|
handler: handler,
|
554
527
|
task: task,
|
@@ -557,30 +530,42 @@ var WorkerMessageHandler = {
|
|
557
530
|
combineTextItems: data.combineTextItems
|
558
531
|
}).then(function () {
|
559
532
|
finishWorkerTask(task);
|
560
|
-
|
533
|
+
|
534
|
+
if (start) {
|
535
|
+
(0, _util.info)("page=".concat(pageIndex + 1, " - getTextContent: time=") + "".concat(Date.now() - start, "ms"));
|
536
|
+
}
|
537
|
+
|
561
538
|
sink.close();
|
562
539
|
}, function (reason) {
|
563
540
|
finishWorkerTask(task);
|
541
|
+
|
564
542
|
if (task.terminated) {
|
565
543
|
return;
|
566
544
|
}
|
545
|
+
|
567
546
|
sink.error(reason);
|
568
|
-
throw reason;
|
569
547
|
});
|
570
548
|
});
|
571
549
|
});
|
550
|
+
handler.on('FontFallback', function (data) {
|
551
|
+
return pdfManager.fontFallback(data.id, handler);
|
552
|
+
});
|
572
553
|
handler.on('Cleanup', function wphCleanup(data) {
|
573
554
|
return pdfManager.cleanup();
|
574
555
|
});
|
575
556
|
handler.on('Terminate', function wphTerminate(data) {
|
576
557
|
terminated = true;
|
558
|
+
|
577
559
|
if (pdfManager) {
|
578
|
-
pdfManager.terminate();
|
560
|
+
pdfManager.terminate(new _util.AbortException('Worker was terminated.'));
|
579
561
|
pdfManager = null;
|
580
562
|
}
|
563
|
+
|
581
564
|
if (cancelXHRs) {
|
582
|
-
cancelXHRs();
|
565
|
+
cancelXHRs(new _util.AbortException('Worker was terminated.'));
|
583
566
|
}
|
567
|
+
|
568
|
+
(0, _primitives.clearPrimitiveCaches)();
|
584
569
|
var waitOn = [];
|
585
570
|
WorkerTasks.forEach(function (task) {
|
586
571
|
waitOn.push(task.finished);
|
@@ -603,11 +588,12 @@ var WorkerMessageHandler = {
|
|
603
588
|
handler.send('ready', null);
|
604
589
|
}
|
605
590
|
};
|
591
|
+
exports.WorkerMessageHandler = WorkerMessageHandler;
|
592
|
+
|
606
593
|
function isMessagePort(maybePort) {
|
607
594
|
return typeof maybePort.postMessage === 'function' && 'onmessage' in maybePort;
|
608
595
|
}
|
609
|
-
|
596
|
+
|
597
|
+
if (typeof window === 'undefined' && !(0, _is_node["default"])() && typeof self !== 'undefined' && isMessagePort(self)) {
|
610
598
|
WorkerMessageHandler.initializeFromPort(self);
|
611
|
-
}
|
612
|
-
exports.WorkerTask = WorkerTask;
|
613
|
-
exports.WorkerMessageHandler = WorkerMessageHandler;
|
599
|
+
}
|