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