pdfjs-dist 2.1.266 → 2.5.207
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/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8382 -18492
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +22 -1
- package/build/pdf.worker.entry.js +5 -3
- package/build/pdf.worker.js +20417 -29816
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25688 -0
- package/es5/build/pdf.js.map +1 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +58239 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/web/images/annotation-check.svg +11 -0
- package/es5/web/images/annotation-comment.svg +16 -0
- package/es5/web/images/annotation-help.svg +26 -0
- package/es5/web/images/annotation-insert.svg +10 -0
- package/es5/web/images/annotation-key.svg +11 -0
- package/es5/web/images/annotation-newparagraph.svg +11 -0
- package/es5/web/images/annotation-noicon.svg +7 -0
- package/es5/web/images/annotation-note.svg +42 -0
- package/es5/web/images/annotation-paragraph.svg +16 -0
- package/es5/web/images/loading-icon.gif +0 -0
- package/es5/web/images/shadow.png +0 -0
- package/es5/web/images/texture.png +0 -0
- package/es5/web/pdf_viewer.css +403 -0
- package/es5/web/pdf_viewer.js +7742 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1475 -4897
- package/image_decoders/pdf.image_decoders.js.map +1 -1
- package/image_decoders/pdf.image_decoders.min.js +22 -1
- package/lib/README.md +7 -0
- package/lib/core/annotation.js +750 -899
- package/lib/core/arithmetic_decoder.js +81 -97
- package/lib/core/bidi.js +54 -46
- package/lib/core/ccitt.js +88 -81
- package/lib/core/ccitt_stream.js +15 -14
- package/lib/core/cff_parser.js +235 -183
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +447 -542
- package/lib/core/cmap.js +222 -264
- package/lib/core/colorspace.js +699 -863
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +379 -437
- package/lib/core/document.js +573 -660
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +1103 -868
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +570 -491
- package/lib/core/function.js +291 -288
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +145 -149
- package/lib/core/image_utils.js +170 -0
- package/lib/core/jbig2.js +325 -316
- package/lib/core/jbig2_stream.js +18 -17
- package/lib/core/jpeg_stream.js +21 -26
- package/lib/core/jpg.js +284 -232
- package/lib/core/jpx.js +161 -143
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2929 -2929
- package/lib/core/murmurhash3.js +90 -101
- package/lib/core/obj.js +1183 -1157
- package/lib/core/operator_list.js +99 -67
- package/lib/core/parser.js +972 -911
- package/lib/core/pattern.js +87 -70
- package/lib/core/pdf_manager.js +150 -315
- package/lib/core/primitives.js +83 -56
- package/lib/core/ps_parser.js +175 -214
- package/lib/core/standard_fonts.js +237 -236
- package/lib/core/stream.js +94 -74
- package/lib/core/type1_parser.js +87 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +193 -390
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +741 -972
- package/lib/display/api.js +1500 -1791
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +165 -165
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +515 -0
- package/lib/display/fetch_stream.js +183 -298
- package/lib/display/font_loader.js +273 -413
- package/lib/display/metadata.js +86 -98
- package/lib/display/network.js +266 -359
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +285 -458
- package/lib/display/pattern_helper.js +113 -65
- package/lib/display/svg.js +1166 -901
- package/lib/display/text_layer.js +156 -132
- package/lib/display/transport_stream.js +262 -278
- package/lib/display/webgl.js +70 -83
- package/lib/display/worker_options.js +3 -3
- package/lib/display/xml_parser.js +303 -392
- package/lib/examples/node/domstubs.js +40 -37
- package/lib/pdf.js +226 -59
- package/lib/pdf.worker.js +14 -6
- package/lib/shared/compatibility.js +3 -246
- package/lib/shared/is_node.js +7 -6
- package/lib/shared/message_handler.js +327 -332
- package/lib/shared/util.js +266 -416
- package/lib/test/unit/annotation_spec.js +1555 -701
- package/lib/test/unit/api_spec.js +802 -604
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +84 -69
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +74 -76
- package/lib/test/unit/colorspace_spec.js +166 -161
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +181 -181
- package/lib/test/unit/custom_spec.js +20 -22
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +16 -21
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +83 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +46 -30
- package/lib/test/unit/message_handler_spec.js +173 -159
- package/lib/test/unit/metadata_spec.js +69 -69
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +13 -61
- package/lib/test/unit/network_utils_spec.js +183 -119
- package/lib/test/unit/node_stream_spec.js +78 -92
- package/lib/test/unit/parser_spec.js +172 -114
- package/lib/test/unit/pdf_find_controller_spec.js +55 -86
- package/lib/test/unit/pdf_find_utils_spec.js +32 -32
- package/lib/test/unit/pdf_history_spec.js +32 -32
- package/lib/test/unit/primitives_spec.js +140 -125
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +131 -143
- package/lib/test/unit/testreporter.js +19 -19
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +297 -459
- package/lib/test/unit/unicode_spec.js +38 -38
- package/lib/test/unit/util_spec.js +121 -305
- package/lib/web/annotation_layer_builder.js +66 -103
- package/lib/web/app.js +1328 -1214
- package/lib/web/app_options.js +105 -107
- package/lib/web/base_viewer.js +824 -838
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +39 -55
- package/lib/web/firefox_print_service.js +37 -27
- package/lib/web/firefoxcom.js +212 -363
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +32 -30
- package/lib/web/interfaces.js +80 -254
- package/lib/web/overlay_manager.js +70 -246
- package/lib/web/password_prompt.js +38 -64
- package/lib/web/pdf_attachment_viewer.js +113 -131
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +221 -306
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +491 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +140 -175
- package/lib/web/pdf_page_view.js +452 -523
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +90 -104
- package/lib/web/pdf_rendering_queue.js +84 -108
- package/lib/web/pdf_sidebar.js +276 -306
- package/lib/web/pdf_sidebar_resizer.js +92 -119
- package/lib/web/pdf_single_page_viewer.js +77 -126
- package/lib/web/pdf_thumbnail_view.js +276 -297
- package/lib/web/pdf_thumbnail_viewer.js +186 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +82 -286
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +282 -339
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +267 -420
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +35 -25
- package/web/pdf_viewer.js +3489 -4855
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +14 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/display/dom_utils.js +0 -494
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- package/lib/test/unit/dom_utils_spec.js +0 -89
package/lib/core/stream.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 2020 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.
|
@@ -26,17 +26,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
26
26
|
});
|
27
27
|
exports.LZWStream = exports.StringStream = exports.StreamsSequenceStream = exports.Stream = exports.RunLengthStream = exports.PredictorStream = exports.NullStream = exports.FlateStream = exports.DecodeStream = exports.DecryptStream = exports.AsciiHexStream = exports.Ascii85Stream = void 0;
|
28
28
|
|
29
|
-
var _util = require("../shared/util");
|
29
|
+
var _util = require("../shared/util.js");
|
30
30
|
|
31
|
-
var _primitives = require("./primitives");
|
31
|
+
var _primitives = require("./primitives.js");
|
32
32
|
|
33
|
-
|
34
|
-
|
35
|
-
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
|
36
|
-
|
37
|
-
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
|
38
|
-
|
39
|
-
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
|
33
|
+
var _core_utils = require("./core_utils.js");
|
40
34
|
|
41
35
|
var Stream = function StreamClosure() {
|
42
36
|
function Stream(arrayBuffer, start, length, dict) {
|
@@ -80,16 +74,15 @@ var Stream = function StreamClosure() {
|
|
80
74
|
var b3 = this.getByte();
|
81
75
|
return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;
|
82
76
|
},
|
83
|
-
|
84
|
-
|
77
|
+
|
78
|
+
getBytes(length, forceClamped = false) {
|
85
79
|
var bytes = this.bytes;
|
86
80
|
var pos = this.pos;
|
87
81
|
var strEnd = this.end;
|
88
82
|
|
89
83
|
if (!length) {
|
90
|
-
|
91
|
-
|
92
|
-
return forceClamped ? new Uint8ClampedArray(_subarray) : _subarray;
|
84
|
+
const subarray = bytes.subarray(pos, strEnd);
|
85
|
+
return forceClamped ? new Uint8ClampedArray(subarray) : subarray;
|
93
86
|
}
|
94
87
|
|
95
88
|
var end = pos + length;
|
@@ -99,20 +92,38 @@ var Stream = function StreamClosure() {
|
|
99
92
|
}
|
100
93
|
|
101
94
|
this.pos = end;
|
102
|
-
|
95
|
+
const subarray = bytes.subarray(pos, end);
|
103
96
|
return forceClamped ? new Uint8ClampedArray(subarray) : subarray;
|
104
97
|
},
|
98
|
+
|
105
99
|
peekByte: function Stream_peekByte() {
|
106
100
|
var peekedByte = this.getByte();
|
107
|
-
|
101
|
+
|
102
|
+
if (peekedByte !== -1) {
|
103
|
+
this.pos--;
|
104
|
+
}
|
105
|
+
|
108
106
|
return peekedByte;
|
109
107
|
},
|
110
|
-
|
111
|
-
|
108
|
+
|
109
|
+
peekBytes(length, forceClamped = false) {
|
112
110
|
var bytes = this.getBytes(length, forceClamped);
|
113
111
|
this.pos -= bytes.length;
|
114
112
|
return bytes;
|
115
113
|
},
|
114
|
+
|
115
|
+
getByteRange(begin, end) {
|
116
|
+
if (begin < 0) {
|
117
|
+
begin = 0;
|
118
|
+
}
|
119
|
+
|
120
|
+
if (end > this.end) {
|
121
|
+
end = this.end;
|
122
|
+
}
|
123
|
+
|
124
|
+
return this.bytes.subarray(begin, end);
|
125
|
+
},
|
126
|
+
|
116
127
|
skip: function Stream_skip(n) {
|
117
128
|
if (!n) {
|
118
129
|
n = 1;
|
@@ -137,7 +148,7 @@ exports.Stream = Stream;
|
|
137
148
|
|
138
149
|
var StringStream = function StringStreamClosure() {
|
139
150
|
function StringStream(str) {
|
140
|
-
|
151
|
+
const bytes = (0, _util.stringToBytes)(str);
|
141
152
|
Stream.call(this, bytes);
|
142
153
|
}
|
143
154
|
|
@@ -221,8 +232,8 @@ var DecodeStream = function DecodeStreamClosure() {
|
|
221
232
|
var b3 = this.getByte();
|
222
233
|
return (b0 << 24) + (b1 << 16) + (b2 << 8) + b3;
|
223
234
|
},
|
224
|
-
|
225
|
-
|
235
|
+
|
236
|
+
getBytes(length, forceClamped = false) {
|
226
237
|
var end,
|
227
238
|
pos = this.pos;
|
228
239
|
|
@@ -248,20 +259,26 @@ var DecodeStream = function DecodeStreamClosure() {
|
|
248
259
|
}
|
249
260
|
|
250
261
|
this.pos = end;
|
251
|
-
|
262
|
+
const subarray = this.buffer.subarray(pos, end);
|
252
263
|
return forceClamped && !(subarray instanceof Uint8ClampedArray) ? new Uint8ClampedArray(subarray) : subarray;
|
253
264
|
},
|
265
|
+
|
254
266
|
peekByte: function DecodeStream_peekByte() {
|
255
267
|
var peekedByte = this.getByte();
|
256
|
-
|
268
|
+
|
269
|
+
if (peekedByte !== -1) {
|
270
|
+
this.pos--;
|
271
|
+
}
|
272
|
+
|
257
273
|
return peekedByte;
|
258
274
|
},
|
259
|
-
|
260
|
-
|
275
|
+
|
276
|
+
peekBytes(length, forceClamped = false) {
|
261
277
|
var bytes = this.getBytes(length, forceClamped);
|
262
278
|
this.pos -= bytes.length;
|
263
279
|
return bytes;
|
264
280
|
},
|
281
|
+
|
265
282
|
makeSubStream: function DecodeStream_makeSubStream(start, length, dict) {
|
266
283
|
var end = start + length;
|
267
284
|
|
@@ -271,6 +288,11 @@ var DecodeStream = function DecodeStreamClosure() {
|
|
271
288
|
|
272
289
|
return new Stream(this.buffer, start, length, dict);
|
273
290
|
},
|
291
|
+
|
292
|
+
getByteRange(begin, end) {
|
293
|
+
(0, _util.unreachable)("Should not call DecodeStream.getByteRange");
|
294
|
+
},
|
295
|
+
|
274
296
|
skip: function DecodeStream_skip(n) {
|
275
297
|
if (!n) {
|
276
298
|
n = 1;
|
@@ -297,10 +319,10 @@ exports.DecodeStream = DecodeStream;
|
|
297
319
|
var StreamsSequenceStream = function StreamsSequenceStreamClosure() {
|
298
320
|
function StreamsSequenceStream(streams) {
|
299
321
|
this.streams = streams;
|
300
|
-
|
322
|
+
let maybeLength = 0;
|
301
323
|
|
302
|
-
for (
|
303
|
-
|
324
|
+
for (let i = 0, ii = streams.length; i < ii; i++) {
|
325
|
+
const stream = streams[i];
|
304
326
|
|
305
327
|
if (stream instanceof DecodeStream) {
|
306
328
|
maybeLength += stream._rawMinBufferLength;
|
@@ -338,7 +360,7 @@ var StreamsSequenceStream = function StreamsSequenceStreamClosure() {
|
|
338
360
|
var stream = this.streams[i];
|
339
361
|
|
340
362
|
if (stream.getBaseStreams) {
|
341
|
-
baseStreams.push
|
363
|
+
baseStreams.push(...stream.getBaseStreams());
|
342
364
|
}
|
343
365
|
}
|
344
366
|
|
@@ -364,19 +386,19 @@ var FlateStream = function FlateStreamClosure() {
|
|
364
386
|
var flg = str.getByte();
|
365
387
|
|
366
388
|
if (cmf === -1 || flg === -1) {
|
367
|
-
throw new _util.FormatError(
|
389
|
+
throw new _util.FormatError(`Invalid header in flate stream: ${cmf}, ${flg}`);
|
368
390
|
}
|
369
391
|
|
370
392
|
if ((cmf & 0x0f) !== 0x08) {
|
371
|
-
throw new _util.FormatError(
|
393
|
+
throw new _util.FormatError(`Unknown compression method in flate stream: ${cmf}, ${flg}`);
|
372
394
|
}
|
373
395
|
|
374
396
|
if (((cmf << 8) + flg) % 31 !== 0) {
|
375
|
-
throw new _util.FormatError(
|
397
|
+
throw new _util.FormatError(`Bad FCHECK in flate stream: ${cmf}, ${flg}`);
|
376
398
|
}
|
377
399
|
|
378
400
|
if (flg & 0x20) {
|
379
|
-
throw new _util.FormatError(
|
401
|
+
throw new _util.FormatError(`FDICT bit set in flate stream: ${cmf}, ${flg}`);
|
380
402
|
}
|
381
403
|
|
382
404
|
this.codeSize = 0;
|
@@ -394,7 +416,7 @@ var FlateStream = function FlateStreamClosure() {
|
|
394
416
|
|
395
417
|
while (codeSize < bits) {
|
396
418
|
if ((b = str.getByte()) === -1) {
|
397
|
-
throw new _util.FormatError(
|
419
|
+
throw new _util.FormatError("Bad encoding in flate stream");
|
398
420
|
}
|
399
421
|
|
400
422
|
codeBuf |= b << codeSize;
|
@@ -429,7 +451,7 @@ var FlateStream = function FlateStreamClosure() {
|
|
429
451
|
var codeVal = code & 0xffff;
|
430
452
|
|
431
453
|
if (codeLen < 1 || codeSize < codeLen) {
|
432
|
-
throw new _util.FormatError(
|
454
|
+
throw new _util.FormatError("Bad encoding in flate stream");
|
433
455
|
}
|
434
456
|
|
435
457
|
this.codeBuf = codeBuf >> codeLen;
|
@@ -489,38 +511,38 @@ var FlateStream = function FlateStreamClosure() {
|
|
489
511
|
var b;
|
490
512
|
|
491
513
|
if ((b = str.getByte()) === -1) {
|
492
|
-
throw new _util.FormatError(
|
514
|
+
throw new _util.FormatError("Bad block header in flate stream");
|
493
515
|
}
|
494
516
|
|
495
517
|
var blockLen = b;
|
496
518
|
|
497
519
|
if ((b = str.getByte()) === -1) {
|
498
|
-
throw new _util.FormatError(
|
520
|
+
throw new _util.FormatError("Bad block header in flate stream");
|
499
521
|
}
|
500
522
|
|
501
523
|
blockLen |= b << 8;
|
502
524
|
|
503
525
|
if ((b = str.getByte()) === -1) {
|
504
|
-
throw new _util.FormatError(
|
526
|
+
throw new _util.FormatError("Bad block header in flate stream");
|
505
527
|
}
|
506
528
|
|
507
529
|
var check = b;
|
508
530
|
|
509
531
|
if ((b = str.getByte()) === -1) {
|
510
|
-
throw new _util.FormatError(
|
532
|
+
throw new _util.FormatError("Bad block header in flate stream");
|
511
533
|
}
|
512
534
|
|
513
535
|
check |= b << 8;
|
514
536
|
|
515
537
|
if (check !== (~blockLen & 0xffff) && (blockLen !== 0 || check !== 0)) {
|
516
|
-
throw new _util.FormatError(
|
538
|
+
throw new _util.FormatError("Bad uncompressed block length in flate stream");
|
517
539
|
}
|
518
540
|
|
519
541
|
this.codeBuf = 0;
|
520
542
|
this.codeSize = 0;
|
521
|
-
|
522
|
-
|
523
|
-
|
543
|
+
const bufferLength = this.bufferLength,
|
544
|
+
end = bufferLength + blockLen;
|
545
|
+
buffer = this.ensureBuffer(end);
|
524
546
|
this.bufferLength = end;
|
525
547
|
|
526
548
|
if (blockLen === 0) {
|
@@ -528,13 +550,11 @@ var FlateStream = function FlateStreamClosure() {
|
|
528
550
|
this.eof = true;
|
529
551
|
}
|
530
552
|
} else {
|
531
|
-
|
532
|
-
|
533
|
-
this.eof = true;
|
534
|
-
break;
|
535
|
-
}
|
553
|
+
const block = str.getBytes(blockLen);
|
554
|
+
buffer.set(block, bufferLength);
|
536
555
|
|
537
|
-
|
556
|
+
if (block.length < blockLen) {
|
557
|
+
this.eof = true;
|
538
558
|
}
|
539
559
|
}
|
540
560
|
|
@@ -595,7 +615,7 @@ var FlateStream = function FlateStreamClosure() {
|
|
595
615
|
litCodeTable = this.generateHuffmanTable(codeLengths.subarray(0, numLitCodes));
|
596
616
|
distCodeTable = this.generateHuffmanTable(codeLengths.subarray(numLitCodes, codes));
|
597
617
|
} else {
|
598
|
-
throw new _util.FormatError(
|
618
|
+
throw new _util.FormatError("Unknown block type in flate stream");
|
599
619
|
}
|
600
620
|
|
601
621
|
buffer = this.buffer;
|
@@ -661,14 +681,14 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
661
681
|
return str;
|
662
682
|
}
|
663
683
|
|
664
|
-
var predictor = this.predictor = params.get(
|
684
|
+
var predictor = this.predictor = params.get("Predictor") || 1;
|
665
685
|
|
666
686
|
if (predictor <= 1) {
|
667
687
|
return str;
|
668
688
|
}
|
669
689
|
|
670
690
|
if (predictor !== 2 && (predictor < 10 || predictor > 15)) {
|
671
|
-
throw new _util.FormatError(
|
691
|
+
throw new _util.FormatError(`Unsupported predictor: ${predictor}`);
|
672
692
|
}
|
673
693
|
|
674
694
|
if (predictor === 2) {
|
@@ -679,9 +699,9 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
679
699
|
|
680
700
|
this.str = str;
|
681
701
|
this.dict = str.dict;
|
682
|
-
var colors = this.colors = params.get(
|
683
|
-
var bits = this.bits = params.get(
|
684
|
-
var columns = this.columns = params.get(
|
702
|
+
var colors = this.colors = params.get("Colors") || 1;
|
703
|
+
var bits = this.bits = params.get("BitsPerComponent") || 8;
|
704
|
+
var columns = this.columns = params.get("Columns") || 1;
|
685
705
|
this.pixBytes = colors * bits + 7 >> 3;
|
686
706
|
this.rowBytes = columns * colors * bits + 7 >> 3;
|
687
707
|
DecodeStream.call(this, maybeLength);
|
@@ -736,9 +756,9 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
736
756
|
}
|
737
757
|
|
738
758
|
for (; i < rowBytes; i += 2) {
|
739
|
-
var sum = ((rawBytes[i] &
|
740
|
-
buffer[pos++] = sum >> 8 &
|
741
|
-
buffer[pos++] = sum &
|
759
|
+
var sum = ((rawBytes[i] & 0xff) << 8) + (rawBytes[i + 1] & 0xff) + ((buffer[pos - bytesPerPixel] & 0xff) << 8) + (buffer[pos - bytesPerPixel + 1] & 0xff);
|
760
|
+
buffer[pos++] = sum >> 8 & 0xff;
|
761
|
+
buffer[pos++] = sum & 0xff;
|
742
762
|
}
|
743
763
|
} else {
|
744
764
|
var compArray = new Uint8Array(colors + 1);
|
@@ -750,7 +770,7 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
750
770
|
for (i = 0; i < columns; ++i) {
|
751
771
|
for (var kk = 0; kk < colors; ++kk) {
|
752
772
|
if (inbits < bits) {
|
753
|
-
inbuf = inbuf << 8 | rawBytes[j++] &
|
773
|
+
inbuf = inbuf << 8 | rawBytes[j++] & 0xff;
|
754
774
|
inbits += 8;
|
755
775
|
}
|
756
776
|
|
@@ -760,7 +780,7 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
760
780
|
outbits += bits;
|
761
781
|
|
762
782
|
if (outbits >= 8) {
|
763
|
-
buffer[k++] = outbuf >> outbits - 8 &
|
783
|
+
buffer[k++] = outbuf >> outbits - 8 & 0xff;
|
764
784
|
outbits -= 8;
|
765
785
|
}
|
766
786
|
}
|
@@ -812,7 +832,7 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
812
832
|
}
|
813
833
|
|
814
834
|
for (; i < rowBytes; ++i) {
|
815
|
-
buffer[j] = buffer[j - pixBytes] + rawBytes[i] &
|
835
|
+
buffer[j] = buffer[j - pixBytes] + rawBytes[i] & 0xff;
|
816
836
|
j++;
|
817
837
|
}
|
818
838
|
|
@@ -820,7 +840,7 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
820
840
|
|
821
841
|
case 2:
|
822
842
|
for (i = 0; i < rowBytes; ++i) {
|
823
|
-
buffer[j++] = prevRow[i] + rawBytes[i] &
|
843
|
+
buffer[j++] = prevRow[i] + rawBytes[i] & 0xff;
|
824
844
|
}
|
825
845
|
|
826
846
|
break;
|
@@ -831,7 +851,7 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
831
851
|
}
|
832
852
|
|
833
853
|
for (; i < rowBytes; ++i) {
|
834
|
-
buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] &
|
854
|
+
buffer[j] = (prevRow[i] + buffer[j - pixBytes] >> 1) + rawBytes[i] & 0xff;
|
835
855
|
j++;
|
836
856
|
}
|
837
857
|
|
@@ -881,7 +901,7 @@ var PredictorStream = function PredictorStreamClosure() {
|
|
881
901
|
break;
|
882
902
|
|
883
903
|
default:
|
884
|
-
throw new _util.FormatError(
|
904
|
+
throw new _util.FormatError(`Unsupported predictor: ${predictor}`);
|
885
905
|
}
|
886
906
|
|
887
907
|
this.bufferLength += rowBytes;
|
@@ -957,13 +977,13 @@ var Ascii85Stream = function Ascii85StreamClosure() {
|
|
957
977
|
Ascii85Stream.prototype = Object.create(DecodeStream.prototype);
|
958
978
|
|
959
979
|
Ascii85Stream.prototype.readBlock = function Ascii85Stream_readBlock() {
|
960
|
-
var TILDA_CHAR =
|
961
|
-
var Z_LOWER_CHAR =
|
980
|
+
var TILDA_CHAR = 0x7e;
|
981
|
+
var Z_LOWER_CHAR = 0x7a;
|
962
982
|
var EOF = -1;
|
963
983
|
var str = this.str;
|
964
984
|
var c = str.getByte();
|
965
985
|
|
966
|
-
while ((0,
|
986
|
+
while ((0, _core_utils.isWhiteSpace)(c)) {
|
967
987
|
c = str.getByte();
|
968
988
|
}
|
969
989
|
|
@@ -991,7 +1011,7 @@ var Ascii85Stream = function Ascii85StreamClosure() {
|
|
991
1011
|
for (i = 1; i < 5; ++i) {
|
992
1012
|
c = str.getByte();
|
993
1013
|
|
994
|
-
while ((0,
|
1014
|
+
while ((0, _core_utils.isWhiteSpace)(c)) {
|
995
1015
|
c = str.getByte();
|
996
1016
|
}
|
997
1017
|
|
@@ -1020,7 +1040,7 @@ var Ascii85Stream = function Ascii85StreamClosure() {
|
|
1020
1040
|
}
|
1021
1041
|
|
1022
1042
|
for (i = 3; i >= 0; --i) {
|
1023
|
-
buffer[bufferLength + i] = t &
|
1043
|
+
buffer[bufferLength + i] = t & 0xff;
|
1024
1044
|
t >>= 8;
|
1025
1045
|
}
|
1026
1046
|
}
|
@@ -1065,10 +1085,10 @@ var AsciiHexStream = function AsciiHexStreamClosure() {
|
|
1065
1085
|
digit;
|
1066
1086
|
|
1067
1087
|
if (ch >= 0x30 && ch <= 0x39) {
|
1068
|
-
digit = ch &
|
1088
|
+
digit = ch & 0x0f;
|
1069
1089
|
} else if (ch >= 0x41 && ch <= 0x46 || ch >= 0x61 && ch <= 0x66) {
|
1070
|
-
digit = (ch &
|
1071
|
-
} else if (ch ===
|
1090
|
+
digit = (ch & 0x0f) + 9;
|
1091
|
+
} else if (ch === 0x3e) {
|
1072
1092
|
this.eof = true;
|
1073
1093
|
break;
|
1074
1094
|
} else {
|
@@ -1153,7 +1173,7 @@ var LZWStream = function LZWStreamClosure() {
|
|
1153
1173
|
this.bitsCached = 0;
|
1154
1174
|
var maxLzwDictionarySize = 4096;
|
1155
1175
|
var lzwState = {
|
1156
|
-
earlyChange
|
1176
|
+
earlyChange,
|
1157
1177
|
codeLength: 9,
|
1158
1178
|
nextCode: 258,
|
1159
1179
|
dictionaryValues: new Uint8Array(maxLzwDictionarySize),
|