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/web/debugger.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.
|
@@ -21,49 +21,115 @@
|
|
21
21
|
*/
|
22
22
|
'use strict';
|
23
23
|
|
24
|
-
|
24
|
+
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); }
|
25
25
|
|
26
26
|
var FontInspector = function FontInspectorClosure() {
|
27
|
-
var fonts;
|
27
|
+
var fonts, createObjectURL;
|
28
28
|
var active = false;
|
29
29
|
var fontAttribute = 'data-font-name';
|
30
|
+
|
30
31
|
function removeSelection() {
|
31
|
-
var divs = document.querySelectorAll(
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
var divs = document.querySelectorAll("span[".concat(fontAttribute, "]"));
|
33
|
+
var _iteratorNormalCompletion = true;
|
34
|
+
var _didIteratorError = false;
|
35
|
+
var _iteratorError = undefined;
|
36
|
+
|
37
|
+
try {
|
38
|
+
for (var _iterator = divs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
|
39
|
+
var div = _step.value;
|
40
|
+
div.className = '';
|
41
|
+
}
|
42
|
+
} catch (err) {
|
43
|
+
_didIteratorError = true;
|
44
|
+
_iteratorError = err;
|
45
|
+
} finally {
|
46
|
+
try {
|
47
|
+
if (!_iteratorNormalCompletion && _iterator["return"] != null) {
|
48
|
+
_iterator["return"]();
|
49
|
+
}
|
50
|
+
} finally {
|
51
|
+
if (_didIteratorError) {
|
52
|
+
throw _iteratorError;
|
53
|
+
}
|
54
|
+
}
|
35
55
|
}
|
36
56
|
}
|
57
|
+
|
37
58
|
function resetSelection() {
|
38
|
-
var divs = document.querySelectorAll(
|
39
|
-
|
40
|
-
|
41
|
-
|
59
|
+
var divs = document.querySelectorAll("span[".concat(fontAttribute, "]"));
|
60
|
+
var _iteratorNormalCompletion2 = true;
|
61
|
+
var _didIteratorError2 = false;
|
62
|
+
var _iteratorError2 = undefined;
|
63
|
+
|
64
|
+
try {
|
65
|
+
for (var _iterator2 = divs[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
|
66
|
+
var div = _step2.value;
|
67
|
+
div.className = 'debuggerHideText';
|
68
|
+
}
|
69
|
+
} catch (err) {
|
70
|
+
_didIteratorError2 = true;
|
71
|
+
_iteratorError2 = err;
|
72
|
+
} finally {
|
73
|
+
try {
|
74
|
+
if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
|
75
|
+
_iterator2["return"]();
|
76
|
+
}
|
77
|
+
} finally {
|
78
|
+
if (_didIteratorError2) {
|
79
|
+
throw _iteratorError2;
|
80
|
+
}
|
81
|
+
}
|
42
82
|
}
|
43
83
|
}
|
84
|
+
|
44
85
|
function selectFont(fontName, show) {
|
45
|
-
var divs = document.querySelectorAll(
|
46
|
-
|
47
|
-
|
48
|
-
|
86
|
+
var divs = document.querySelectorAll("span[".concat(fontAttribute, "=").concat(fontName, "]"));
|
87
|
+
var _iteratorNormalCompletion3 = true;
|
88
|
+
var _didIteratorError3 = false;
|
89
|
+
var _iteratorError3 = undefined;
|
90
|
+
|
91
|
+
try {
|
92
|
+
for (var _iterator3 = divs[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
|
93
|
+
var div = _step3.value;
|
94
|
+
div.className = show ? 'debuggerShowText' : 'debuggerHideText';
|
95
|
+
}
|
96
|
+
} catch (err) {
|
97
|
+
_didIteratorError3 = true;
|
98
|
+
_iteratorError3 = err;
|
99
|
+
} finally {
|
100
|
+
try {
|
101
|
+
if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
|
102
|
+
_iterator3["return"]();
|
103
|
+
}
|
104
|
+
} finally {
|
105
|
+
if (_didIteratorError3) {
|
106
|
+
throw _iteratorError3;
|
107
|
+
}
|
108
|
+
}
|
49
109
|
}
|
50
110
|
}
|
111
|
+
|
51
112
|
function textLayerClick(e) {
|
52
|
-
if (!e.target.dataset.fontName || e.target.tagName.toUpperCase() !== '
|
113
|
+
if (!e.target.dataset.fontName || e.target.tagName.toUpperCase() !== 'SPAN') {
|
53
114
|
return;
|
54
115
|
}
|
116
|
+
|
55
117
|
var fontName = e.target.dataset.fontName;
|
56
118
|
var selects = document.getElementsByTagName('input');
|
119
|
+
|
57
120
|
for (var i = 0; i < selects.length; ++i) {
|
58
121
|
var select = selects[i];
|
122
|
+
|
59
123
|
if (select.dataset.fontName !== fontName) {
|
60
124
|
continue;
|
61
125
|
}
|
126
|
+
|
62
127
|
select.checked = !select.checked;
|
63
128
|
selectFont(fontName, select.checked);
|
64
129
|
select.scrollIntoView();
|
65
130
|
}
|
66
131
|
}
|
132
|
+
|
67
133
|
return {
|
68
134
|
id: 'FontInspector',
|
69
135
|
name: 'Font Inspector',
|
@@ -78,16 +144,20 @@ var FontInspector = function FontInspectorClosure() {
|
|
78
144
|
panel.appendChild(tmp);
|
79
145
|
fonts = document.createElement('div');
|
80
146
|
panel.appendChild(fonts);
|
147
|
+
createObjectURL = pdfjsLib.createObjectURL;
|
81
148
|
},
|
82
149
|
cleanup: function cleanup() {
|
83
150
|
fonts.textContent = '';
|
84
151
|
},
|
85
152
|
enabled: false,
|
153
|
+
|
86
154
|
get active() {
|
87
155
|
return active;
|
88
156
|
},
|
157
|
+
|
89
158
|
set active(value) {
|
90
159
|
active = value;
|
160
|
+
|
91
161
|
if (active) {
|
92
162
|
document.body.addEventListener('click', textLayerClick, true);
|
93
163
|
resetSelection();
|
@@ -96,11 +166,13 @@ var FontInspector = function FontInspectorClosure() {
|
|
96
166
|
removeSelection();
|
97
167
|
}
|
98
168
|
},
|
169
|
+
|
99
170
|
fontAdded: function fontAdded(fontObj, url) {
|
100
171
|
var _this = this;
|
101
172
|
|
102
173
|
function properties(obj, list) {
|
103
174
|
var moreInfo = document.createElement('table');
|
175
|
+
|
104
176
|
for (var i = 0; i < list.length; i++) {
|
105
177
|
var tr = document.createElement('tr');
|
106
178
|
var td1 = document.createElement('td');
|
@@ -111,21 +183,24 @@ var FontInspector = function FontInspectorClosure() {
|
|
111
183
|
tr.appendChild(td2);
|
112
184
|
moreInfo.appendChild(tr);
|
113
185
|
}
|
186
|
+
|
114
187
|
return moreInfo;
|
115
188
|
}
|
189
|
+
|
116
190
|
var moreInfo = properties(fontObj, ['name', 'type']);
|
117
191
|
var fontName = fontObj.loadedName;
|
118
192
|
var font = document.createElement('div');
|
119
193
|
var name = document.createElement('span');
|
120
194
|
name.textContent = fontName;
|
121
195
|
var download = document.createElement('a');
|
196
|
+
|
122
197
|
if (url) {
|
123
198
|
url = /url\(['"]?([^\)"']+)/.exec(url);
|
124
199
|
download.href = url[1];
|
125
200
|
} else if (fontObj.data) {
|
126
|
-
|
127
|
-
download.href = url;
|
201
|
+
download.href = createObjectURL(fontObj.data, fontObj.mimeType);
|
128
202
|
}
|
203
|
+
|
129
204
|
download.textContent = 'Download';
|
130
205
|
var logIt = document.createElement('a');
|
131
206
|
logIt.href = '';
|
@@ -158,7 +233,9 @@ var FontInspector = function FontInspectorClosure() {
|
|
158
233
|
}
|
159
234
|
};
|
160
235
|
}();
|
236
|
+
|
161
237
|
var opMap;
|
238
|
+
|
162
239
|
var StepperManager = function StepperManagerClosure() {
|
163
240
|
var steppers = [];
|
164
241
|
var stepperDiv = null;
|
@@ -182,10 +259,13 @@ var StepperManager = function StepperManagerClosure() {
|
|
182
259
|
stepperDiv = document.createElement('div');
|
183
260
|
this.panel.appendChild(stepperControls);
|
184
261
|
this.panel.appendChild(stepperDiv);
|
262
|
+
|
185
263
|
if (sessionStorage.getItem('pdfjsBreakPoints')) {
|
186
264
|
breakPoints = JSON.parse(sessionStorage.getItem('pdfjsBreakPoints'));
|
187
265
|
}
|
266
|
+
|
188
267
|
opMap = Object.create(null);
|
268
|
+
|
189
269
|
for (var key in pdfjsLib.OPS) {
|
190
270
|
opMap[pdfjsLib.OPS[key]] = key;
|
191
271
|
}
|
@@ -210,26 +290,33 @@ var StepperManager = function StepperManagerClosure() {
|
|
210
290
|
var initBreakPoints = breakPoints[pageIndex] || [];
|
211
291
|
var stepper = new Stepper(debug, pageIndex, initBreakPoints);
|
212
292
|
steppers.push(stepper);
|
293
|
+
|
213
294
|
if (steppers.length === 1) {
|
214
295
|
this.selectStepper(pageIndex, false);
|
215
296
|
}
|
297
|
+
|
216
298
|
return stepper;
|
217
299
|
},
|
218
300
|
selectStepper: function selectStepper(pageIndex, selectPanel) {
|
219
301
|
var i;
|
220
302
|
pageIndex = pageIndex | 0;
|
303
|
+
|
221
304
|
if (selectPanel) {
|
222
305
|
this.manager.selectPanel(this);
|
223
306
|
}
|
307
|
+
|
224
308
|
for (i = 0; i < steppers.length; ++i) {
|
225
309
|
var stepper = steppers[i];
|
310
|
+
|
226
311
|
if (stepper.pageIndex === pageIndex) {
|
227
312
|
stepper.panel.removeAttribute('hidden');
|
228
313
|
} else {
|
229
314
|
stepper.panel.setAttribute('hidden', true);
|
230
315
|
}
|
231
316
|
}
|
317
|
+
|
232
318
|
var options = stepperChooser.options;
|
319
|
+
|
233
320
|
for (i = 0; i < options.length; ++i) {
|
234
321
|
var option = options[i];
|
235
322
|
option.selected = (option.value | 0) === pageIndex;
|
@@ -241,41 +328,54 @@ var StepperManager = function StepperManagerClosure() {
|
|
241
328
|
}
|
242
329
|
};
|
243
330
|
}();
|
331
|
+
|
244
332
|
var Stepper = function StepperClosure() {
|
245
333
|
function c(tag, textContent) {
|
246
334
|
var d = document.createElement(tag);
|
335
|
+
|
247
336
|
if (textContent) {
|
248
337
|
d.textContent = textContent;
|
249
338
|
}
|
339
|
+
|
250
340
|
return d;
|
251
341
|
}
|
342
|
+
|
252
343
|
function simplifyArgs(args) {
|
253
344
|
if (typeof args === 'string') {
|
254
345
|
var MAX_STRING_LENGTH = 75;
|
255
|
-
return args.length <= MAX_STRING_LENGTH ? args : args.
|
346
|
+
return args.length <= MAX_STRING_LENGTH ? args : args.substring(0, MAX_STRING_LENGTH) + '...';
|
256
347
|
}
|
257
|
-
|
348
|
+
|
349
|
+
if (_typeof(args) !== 'object' || args === null) {
|
258
350
|
return args;
|
259
351
|
}
|
352
|
+
|
260
353
|
if ('length' in args) {
|
261
354
|
var simpleArgs = [],
|
262
355
|
i,
|
263
356
|
ii;
|
264
357
|
var MAX_ITEMS = 10;
|
358
|
+
|
265
359
|
for (i = 0, ii = Math.min(MAX_ITEMS, args.length); i < ii; i++) {
|
266
360
|
simpleArgs.push(simplifyArgs(args[i]));
|
267
361
|
}
|
362
|
+
|
268
363
|
if (i < args.length) {
|
269
364
|
simpleArgs.push('...');
|
270
365
|
}
|
366
|
+
|
271
367
|
return simpleArgs;
|
272
368
|
}
|
369
|
+
|
273
370
|
var simpleObj = {};
|
371
|
+
|
274
372
|
for (var key in args) {
|
275
373
|
simpleObj[key] = simplifyArgs(args[key]);
|
276
374
|
}
|
375
|
+
|
277
376
|
return simpleObj;
|
278
377
|
}
|
378
|
+
|
279
379
|
function Stepper(panel, pageIndex, initialBreakPoints) {
|
280
380
|
this.panel = panel;
|
281
381
|
this.breakPoint = 0;
|
@@ -285,6 +385,7 @@ var Stepper = function StepperClosure() {
|
|
285
385
|
this.currentIdx = -1;
|
286
386
|
this.operatorListIdx = 0;
|
287
387
|
}
|
388
|
+
|
288
389
|
Stepper.prototype = {
|
289
390
|
init: function init(operatorList) {
|
290
391
|
var panel = this.panel;
|
@@ -304,21 +405,28 @@ var Stepper = function StepperClosure() {
|
|
304
405
|
},
|
305
406
|
updateOperatorList: function updateOperatorList(operatorList) {
|
306
407
|
var self = this;
|
408
|
+
|
307
409
|
function cboxOnClick() {
|
308
410
|
var x = +this.dataset.idx;
|
411
|
+
|
309
412
|
if (this.checked) {
|
310
413
|
self.breakPoints.push(x);
|
311
414
|
} else {
|
312
415
|
self.breakPoints.splice(self.breakPoints.indexOf(x), 1);
|
313
416
|
}
|
417
|
+
|
314
418
|
StepperManager.saveBreakPoints(self.pageIndex, self.breakPoints);
|
315
419
|
}
|
420
|
+
|
316
421
|
var MAX_OPERATORS_COUNT = 15000;
|
422
|
+
|
317
423
|
if (this.operatorListIdx > MAX_OPERATORS_COUNT) {
|
318
424
|
return;
|
319
425
|
}
|
426
|
+
|
320
427
|
var chunk = document.createDocumentFragment();
|
321
428
|
var operatorsToDisplay = Math.min(MAX_OPERATORS_COUNT, operatorList.fnArray.length);
|
429
|
+
|
322
430
|
for (var i = this.operatorListIdx; i < operatorsToDisplay; i++) {
|
323
431
|
var line = c('tr');
|
324
432
|
line.className = 'line';
|
@@ -338,36 +446,45 @@ var Stepper = function StepperClosure() {
|
|
338
446
|
line.appendChild(c('td', i.toString()));
|
339
447
|
var fn = opMap[operatorList.fnArray[i]];
|
340
448
|
var decArgs = args;
|
449
|
+
|
341
450
|
if (fn === 'showText') {
|
342
451
|
var glyphs = args[0];
|
343
452
|
var newArgs = [];
|
344
453
|
var str = [];
|
454
|
+
|
345
455
|
for (var j = 0; j < glyphs.length; j++) {
|
346
456
|
var glyph = glyphs[j];
|
347
|
-
|
457
|
+
|
458
|
+
if (_typeof(glyph) === 'object' && glyph !== null) {
|
348
459
|
str.push(glyph.fontChar);
|
349
460
|
} else {
|
350
461
|
if (str.length > 0) {
|
351
462
|
newArgs.push(str.join(''));
|
352
463
|
str = [];
|
353
464
|
}
|
465
|
+
|
354
466
|
newArgs.push(glyph);
|
355
467
|
}
|
356
468
|
}
|
469
|
+
|
357
470
|
if (str.length > 0) {
|
358
471
|
newArgs.push(str.join(''));
|
359
472
|
}
|
473
|
+
|
360
474
|
decArgs = [newArgs];
|
361
475
|
}
|
476
|
+
|
362
477
|
line.appendChild(c('td', fn));
|
363
478
|
line.appendChild(c('td', JSON.stringify(simplifyArgs(decArgs))));
|
364
479
|
}
|
480
|
+
|
365
481
|
if (operatorsToDisplay < operatorList.fnArray.length) {
|
366
482
|
line = c('tr');
|
367
483
|
var lastCell = c('td', '...');
|
368
484
|
lastCell.colspan = 4;
|
369
485
|
chunk.appendChild(lastCell);
|
370
486
|
}
|
487
|
+
|
371
488
|
this.operatorListIdx = operatorList.fnArray.length;
|
372
489
|
this.table.appendChild(chunk);
|
373
490
|
},
|
@@ -375,11 +492,13 @@ var Stepper = function StepperClosure() {
|
|
375
492
|
this.breakPoints.sort(function (a, b) {
|
376
493
|
return a - b;
|
377
494
|
});
|
495
|
+
|
378
496
|
for (var i = 0; i < this.breakPoints.length; i++) {
|
379
497
|
if (this.breakPoints[i] > this.currentIdx) {
|
380
498
|
return this.breakPoints[i];
|
381
499
|
}
|
382
500
|
}
|
501
|
+
|
383
502
|
return null;
|
384
503
|
},
|
385
504
|
breakIt: function breakIt(idx, callback) {
|
@@ -387,6 +506,7 @@ var Stepper = function StepperClosure() {
|
|
387
506
|
var self = this;
|
388
507
|
var dom = document;
|
389
508
|
self.currentIdx = idx;
|
509
|
+
|
390
510
|
var listener = function listener(e) {
|
391
511
|
switch (e.keyCode) {
|
392
512
|
case 83:
|
@@ -395,6 +515,7 @@ var Stepper = function StepperClosure() {
|
|
395
515
|
self.goTo(-1);
|
396
516
|
callback();
|
397
517
|
break;
|
518
|
+
|
398
519
|
case 67:
|
399
520
|
dom.removeEventListener('keydown', listener);
|
400
521
|
var breakPoint = self.getNextBreakPoint();
|
@@ -404,13 +525,16 @@ var Stepper = function StepperClosure() {
|
|
404
525
|
break;
|
405
526
|
}
|
406
527
|
};
|
528
|
+
|
407
529
|
dom.addEventListener('keydown', listener);
|
408
530
|
self.goTo(idx);
|
409
531
|
},
|
410
532
|
goTo: function goTo(idx) {
|
411
533
|
var allRows = this.panel.getElementsByClassName('line');
|
534
|
+
|
412
535
|
for (var x = 0, xx = allRows.length; x < xx; ++x) {
|
413
536
|
var row = allRows[x];
|
537
|
+
|
414
538
|
if ((row.dataset.idx | 0) === idx) {
|
415
539
|
row.style.backgroundColor = 'rgb(251,250,207)';
|
416
540
|
row.scrollIntoView();
|
@@ -422,21 +546,26 @@ var Stepper = function StepperClosure() {
|
|
422
546
|
};
|
423
547
|
return Stepper;
|
424
548
|
}();
|
549
|
+
|
425
550
|
var Stats = function Stats() {
|
426
551
|
var stats = [];
|
552
|
+
|
427
553
|
function clear(node) {
|
428
554
|
while (node.hasChildNodes()) {
|
429
555
|
node.removeChild(node.lastChild);
|
430
556
|
}
|
431
557
|
}
|
558
|
+
|
432
559
|
function getStatIndex(pageNumber) {
|
433
560
|
for (var i = 0, ii = stats.length; i < ii; ++i) {
|
434
561
|
if (stats[i].pageNumber === pageNumber) {
|
435
562
|
return i;
|
436
563
|
}
|
437
564
|
}
|
565
|
+
|
438
566
|
return false;
|
439
567
|
}
|
568
|
+
|
440
569
|
return {
|
441
570
|
id: 'Stats',
|
442
571
|
name: 'Stats',
|
@@ -445,19 +574,21 @@ var Stats = function Stats() {
|
|
445
574
|
init: function init(pdfjsLib) {
|
446
575
|
this.panel.setAttribute('style', 'padding: 5px;');
|
447
576
|
},
|
448
|
-
|
449
577
|
enabled: false,
|
450
578
|
active: false,
|
451
579
|
add: function add(pageNumber, stat) {
|
452
580
|
if (!stat) {
|
453
581
|
return;
|
454
582
|
}
|
583
|
+
|
455
584
|
var statsIndex = getStatIndex(pageNumber);
|
585
|
+
|
456
586
|
if (statsIndex !== false) {
|
457
587
|
var b = stats[statsIndex];
|
458
588
|
this.panel.removeChild(b.div);
|
459
589
|
stats.splice(statsIndex, 1);
|
460
590
|
}
|
591
|
+
|
461
592
|
var wrapper = document.createElement('div');
|
462
593
|
wrapper.className = 'stats';
|
463
594
|
var title = document.createElement('div');
|
@@ -475,6 +606,7 @@ var Stats = function Stats() {
|
|
475
606
|
return a.pageNumber - b.pageNumber;
|
476
607
|
});
|
477
608
|
clear(this.panel);
|
609
|
+
|
478
610
|
for (var i = 0, ii = stats.length; i < ii; ++i) {
|
479
611
|
this.panel.appendChild(stats[i].div);
|
480
612
|
}
|
@@ -485,6 +617,7 @@ var Stats = function Stats() {
|
|
485
617
|
}
|
486
618
|
};
|
487
619
|
}();
|
620
|
+
|
488
621
|
window.PDFBug = function PDFBugClosure() {
|
489
622
|
var panelWidth = 300;
|
490
623
|
var buttons = [];
|
@@ -494,15 +627,19 @@ window.PDFBug = function PDFBugClosure() {
|
|
494
627
|
enable: function enable(ids) {
|
495
628
|
var all = false,
|
496
629
|
tools = this.tools;
|
630
|
+
|
497
631
|
if (ids.length === 1 && ids[0] === 'all') {
|
498
632
|
all = true;
|
499
633
|
}
|
634
|
+
|
500
635
|
for (var i = 0; i < tools.length; ++i) {
|
501
636
|
var tool = tools[i];
|
637
|
+
|
502
638
|
if (all || ids.includes(tool.id)) {
|
503
639
|
tool.enabled = true;
|
504
640
|
}
|
505
641
|
}
|
642
|
+
|
506
643
|
if (!all) {
|
507
644
|
tools.sort(function (a, b) {
|
508
645
|
var indexA = ids.indexOf(a.id);
|
@@ -526,6 +663,7 @@ window.PDFBug = function PDFBugClosure() {
|
|
526
663
|
container.style.right = panelWidth + 'px';
|
527
664
|
var tools = this.tools;
|
528
665
|
var self = this;
|
666
|
+
|
529
667
|
for (var i = 0; i < tools.length; ++i) {
|
530
668
|
var tool = tools[i];
|
531
669
|
var panel = document.createElement('div');
|
@@ -541,13 +679,16 @@ window.PDFBug = function PDFBugClosure() {
|
|
541
679
|
panels.appendChild(panel);
|
542
680
|
tool.panel = panel;
|
543
681
|
tool.manager = this;
|
682
|
+
|
544
683
|
if (tool.enabled) {
|
545
684
|
tool.init(pdfjsLib);
|
546
685
|
} else {
|
547
686
|
panel.textContent = tool.name + ' is disabled. To enable add ' + ' "' + tool.id + '" to the pdfBug parameter ' + 'and refresh (separate multiple by commas).';
|
548
687
|
}
|
688
|
+
|
549
689
|
buttons.push(panelButton);
|
550
690
|
}
|
691
|
+
|
551
692
|
this.selectPanel(0);
|
552
693
|
},
|
553
694
|
cleanup: function cleanup() {
|
@@ -561,11 +702,14 @@ window.PDFBug = function PDFBugClosure() {
|
|
561
702
|
if (typeof index !== 'number') {
|
562
703
|
index = this.tools.indexOf(index);
|
563
704
|
}
|
705
|
+
|
564
706
|
if (index === activePanel) {
|
565
707
|
return;
|
566
708
|
}
|
709
|
+
|
567
710
|
activePanel = index;
|
568
711
|
var tools = this.tools;
|
712
|
+
|
569
713
|
for (var j = 0; j < tools.length; ++j) {
|
570
714
|
if (j === index) {
|
571
715
|
buttons[j].setAttribute('class', 'active');
|
@@ -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,40 +19,49 @@
|
|
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.DownloadManager =
|
27
|
+
exports.DownloadManager = void 0;
|
28
28
|
|
29
|
-
var
|
30
|
-
|
31
|
-
var _pdf = require('../pdf');
|
29
|
+
var _pdf = require("../pdf");
|
32
30
|
|
33
31
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
34
32
|
|
33
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
34
|
+
|
35
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
36
|
+
|
35
37
|
;
|
36
38
|
var DISABLE_CREATE_OBJECT_URL = _pdf.apiCompatibilityParams.disableCreateObjectURL || false;
|
39
|
+
|
37
40
|
function _download(blobUrl, filename) {
|
38
41
|
var a = document.createElement('a');
|
42
|
+
|
39
43
|
if (!a.click) {
|
40
44
|
throw new Error('DownloadManager: "a.click()" is not supported.');
|
41
45
|
}
|
46
|
+
|
42
47
|
a.href = blobUrl;
|
43
48
|
a.target = '_parent';
|
49
|
+
|
44
50
|
if ('download' in a) {
|
45
51
|
a.download = filename;
|
46
52
|
}
|
53
|
+
|
47
54
|
(document.body || document.documentElement).appendChild(a);
|
48
55
|
a.click();
|
49
56
|
a.remove();
|
50
57
|
}
|
51
58
|
|
52
|
-
var DownloadManager =
|
59
|
+
var DownloadManager =
|
60
|
+
/*#__PURE__*/
|
61
|
+
function () {
|
53
62
|
function DownloadManager(_ref) {
|
54
63
|
var _ref$disableCreateObj = _ref.disableCreateObjectURL,
|
55
|
-
disableCreateObjectURL = _ref$disableCreateObj ===
|
64
|
+
disableCreateObjectURL = _ref$disableCreateObj === void 0 ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj;
|
56
65
|
|
57
66
|
_classCallCheck(this, DownloadManager);
|
58
67
|
|
@@ -60,36 +69,46 @@ var DownloadManager = function () {
|
|
60
69
|
}
|
61
70
|
|
62
71
|
_createClass(DownloadManager, [{
|
63
|
-
key:
|
72
|
+
key: "downloadUrl",
|
64
73
|
value: function downloadUrl(url, filename) {
|
65
74
|
if (!(0, _pdf.createValidAbsoluteUrl)(url, 'http://example.com')) {
|
66
75
|
return;
|
67
76
|
}
|
77
|
+
|
68
78
|
_download(url + '#pdfjs.action=download', filename);
|
69
79
|
}
|
70
80
|
}, {
|
71
|
-
key:
|
81
|
+
key: "downloadData",
|
72
82
|
value: function downloadData(data, filename, contentType) {
|
73
83
|
if (navigator.msSaveBlob) {
|
74
|
-
|
84
|
+
navigator.msSaveBlob(new Blob([data], {
|
85
|
+
type: contentType
|
86
|
+
}), filename);
|
87
|
+
return;
|
75
88
|
}
|
89
|
+
|
76
90
|
var blobUrl = (0, _pdf.createObjectURL)(data, contentType, this.disableCreateObjectURL);
|
91
|
+
|
77
92
|
_download(blobUrl, filename);
|
78
93
|
}
|
79
94
|
}, {
|
80
|
-
key:
|
95
|
+
key: "download",
|
81
96
|
value: function download(blob, url, filename) {
|
82
97
|
if (navigator.msSaveBlob) {
|
83
98
|
if (!navigator.msSaveBlob(blob, filename)) {
|
84
99
|
this.downloadUrl(url, filename);
|
85
100
|
}
|
101
|
+
|
86
102
|
return;
|
87
103
|
}
|
104
|
+
|
88
105
|
if (this.disableCreateObjectURL) {
|
89
106
|
this.downloadUrl(url, filename);
|
90
107
|
return;
|
91
108
|
}
|
92
|
-
|
109
|
+
|
110
|
+
var blobUrl = _pdf.URL.createObjectURL(blob);
|
111
|
+
|
93
112
|
_download(blobUrl, filename);
|
94
113
|
}
|
95
114
|
}]);
|