pdfjs-dist 2.0.943 → 2.4.456
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 +8286 -14230
- 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 +25500 -26628
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +25473 -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 +57878 -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 +407 -0
- package/es5/web/pdf_viewer.js +7757 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +2887 -4094
- 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 +855 -778
- package/lib/core/arithmetic_decoder.js +325 -311
- package/lib/core/bidi.js +117 -50
- package/lib/core/ccitt.js +251 -89
- package/lib/core/ccitt_stream.js +26 -16
- package/lib/core/cff_parser.js +525 -197
- package/lib/core/charsets.js +6 -5
- package/lib/core/chunked_stream.js +541 -406
- package/lib/core/cmap.js +368 -253
- package/lib/core/colorspace.js +781 -800
- package/lib/core/core_utils.js +152 -0
- package/lib/core/crypto.js +609 -422
- package/lib/core/document.js +649 -481
- package/lib/core/encodings.js +33 -24
- package/lib/core/evaluator.js +1471 -736
- package/lib/core/font_renderer.js +289 -149
- package/lib/core/fonts.js +1067 -413
- package/lib/core/function.js +517 -287
- package/lib/core/glyphlist.js +4529 -4527
- package/lib/core/image.js +232 -114
- package/lib/core/image_utils.js +94 -0
- package/lib/core/jbig2.js +711 -342
- package/lib/core/jbig2_stream.js +31 -19
- package/lib/core/jpeg_stream.js +151 -26
- package/lib/core/jpg.js +433 -181
- package/lib/core/jpx.js +551 -143
- package/lib/core/jpx_stream.js +40 -28
- package/lib/core/metrics.js +2931 -2931
- package/lib/core/murmurhash3.js +104 -97
- package/lib/core/obj.js +1561 -1053
- package/lib/core/operator_list.js +192 -64
- package/lib/core/parser.js +1162 -864
- package/lib/core/pattern.js +224 -75
- package/lib/core/pdf_manager.js +154 -285
- package/lib/core/primitives.js +145 -69
- package/lib/core/ps_parser.js +212 -162
- package/lib/core/standard_fonts.js +245 -244
- package/lib/core/stream.js +353 -81
- package/lib/core/type1_parser.js +218 -68
- package/lib/core/unicode.js +1682 -1655
- package/lib/core/worker.js +233 -302
- package/lib/core/worker_stream.js +168 -0
- package/lib/display/annotation_layer.js +808 -862
- package/lib/display/api.js +1778 -1462
- package/lib/display/api_compatibility.js +14 -9
- package/lib/display/canvas.js +463 -140
- package/lib/display/content_disposition.js +86 -58
- package/lib/display/display_utils.js +524 -0
- package/lib/display/fetch_stream.js +202 -274
- package/lib/display/font_loader.js +311 -333
- package/lib/display/metadata.js +98 -88
- package/lib/display/network.js +343 -347
- package/lib/display/network_utils.js +46 -26
- package/lib/display/node_stream.js +326 -404
- package/lib/display/pattern_helper.js +168 -69
- package/lib/display/svg.js +1296 -885
- package/lib/display/text_layer.js +229 -103
- package/lib/display/transport_stream.js +290 -250
- package/lib/display/webgl.js +116 -83
- package/lib/display/worker_options.js +6 -5
- package/lib/display/xml_parser.js +358 -337
- package/lib/examples/node/domstubs.js +95 -39
- package/lib/pdf.js +49 -31
- package/lib/pdf.worker.js +7 -5
- package/lib/shared/compatibility.js +3 -145
- package/lib/shared/is_node.js +8 -7
- package/lib/shared/message_handler.js +367 -314
- package/lib/shared/util.js +421 -415
- package/lib/test/unit/annotation_spec.js +1570 -690
- package/lib/test/unit/api_spec.js +855 -493
- package/lib/test/unit/bidi_spec.js +12 -12
- package/lib/test/unit/cff_parser_spec.js +88 -61
- package/lib/test/unit/clitests_helper.js +9 -12
- package/lib/test/unit/cmap_spec.js +140 -88
- package/lib/test/unit/colorspace_spec.js +204 -152
- package/lib/test/unit/core_utils_spec.js +211 -0
- package/lib/test/unit/crypto_spec.js +194 -182
- package/lib/test/unit/custom_spec.js +50 -64
- package/lib/test/unit/display_svg_spec.js +53 -38
- package/lib/test/unit/display_utils_spec.js +263 -0
- package/lib/test/unit/document_spec.js +17 -22
- package/lib/test/unit/encodings_spec.js +15 -57
- package/lib/test/unit/evaluator_spec.js +90 -83
- package/lib/test/unit/fetch_stream_spec.js +111 -0
- package/lib/test/unit/function_spec.js +219 -205
- package/lib/test/unit/jasmine-boot.js +68 -39
- package/lib/test/unit/message_handler_spec.js +187 -160
- package/lib/test/unit/metadata_spec.js +87 -34
- package/lib/test/unit/murmurhash3_spec.js +13 -13
- package/lib/test/unit/network_spec.js +26 -59
- package/lib/test/unit/network_utils_spec.js +187 -121
- package/lib/test/unit/node_stream_spec.js +98 -90
- package/lib/test/unit/parser_spec.js +173 -131
- package/lib/test/unit/pdf_find_controller_spec.js +148 -67
- package/lib/test/unit/pdf_find_utils_spec.js +35 -34
- package/lib/test/unit/pdf_history_spec.js +45 -33
- package/lib/test/unit/primitives_spec.js +161 -126
- package/lib/test/unit/stream_spec.js +22 -15
- package/lib/test/unit/test_utils.js +149 -98
- package/lib/test/unit/testreporter.js +36 -18
- package/lib/test/unit/type1_parser_spec.js +46 -44
- package/lib/test/unit/ui_utils_spec.js +388 -372
- package/lib/test/unit/unicode_spec.js +49 -46
- package/lib/test/unit/util_spec.js +144 -248
- package/lib/web/annotation_layer_builder.js +75 -95
- package/lib/web/app.js +1538 -1147
- package/lib/web/app_options.js +116 -104
- package/lib/web/base_viewer.js +950 -775
- package/lib/web/chromecom.js +217 -225
- package/lib/web/debugger.js +236 -148
- package/lib/web/download_manager.js +50 -50
- package/lib/web/firefox_print_service.js +51 -33
- package/lib/web/firefoxcom.js +225 -352
- package/lib/web/genericcom.js +30 -93
- package/lib/web/genericl10n.js +26 -143
- package/lib/web/grab_to_pan.js +57 -33
- package/lib/web/interfaces.js +105 -232
- package/lib/web/overlay_manager.js +73 -227
- package/lib/web/password_prompt.js +44 -62
- package/lib/web/pdf_attachment_viewer.js +118 -123
- package/lib/web/pdf_cursor_tools.js +89 -93
- package/lib/web/pdf_document_properties.js +242 -281
- package/lib/web/pdf_find_bar.js +157 -163
- package/lib/web/pdf_find_controller.js +598 -454
- package/lib/web/pdf_find_utils.js +32 -16
- package/lib/web/pdf_history.js +481 -355
- package/lib/web/pdf_link_service.js +355 -323
- package/lib/web/pdf_outline_viewer.js +167 -152
- package/lib/web/pdf_page_view.js +511 -457
- package/lib/web/pdf_presentation_mode.js +347 -335
- package/lib/web/pdf_print_service.js +133 -103
- package/lib/web/pdf_rendering_queue.js +98 -100
- package/lib/web/pdf_sidebar.js +323 -299
- package/lib/web/pdf_sidebar_resizer.js +107 -108
- package/lib/web/pdf_single_page_viewer.js +94 -146
- package/lib/web/pdf_thumbnail_view.js +319 -269
- package/lib/web/pdf_thumbnail_viewer.js +219 -199
- package/lib/web/pdf_viewer.component.js +111 -32
- package/lib/web/pdf_viewer.js +61 -101
- package/lib/web/preferences.js +87 -272
- package/lib/web/secondary_toolbar.js +207 -220
- package/lib/web/text_layer_builder.js +322 -322
- package/lib/web/toolbar.js +227 -180
- package/lib/web/ui_utils.js +476 -421
- package/lib/web/view_history.js +59 -208
- package/lib/web/viewer_compatibility.js +9 -6
- package/package.json +2 -9
- package/web/pdf_viewer.css +36 -22
- package/web/pdf_viewer.js +4407 -4516
- 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 -441
- package/lib/shared/streams_polyfill.js +0 -39
- package/lib/shared/url_polyfill.js +0 -50
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/web/dom_events.js +0 -140
@@ -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.
|
@@ -19,121 +19,122 @@
|
|
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
|
-
var
|
24
|
+
var _util = require("../../shared/util.js");
|
25
25
|
|
26
|
-
var
|
26
|
+
var _is_node = require("../../shared/is_node.js");
|
27
27
|
|
28
|
-
var
|
28
|
+
var _node_stream = require("../../display/node_stream.js");
|
29
29
|
|
30
|
-
|
30
|
+
(0, _util.assert)(_is_node.isNodeJS);
|
31
31
|
|
32
|
-
|
32
|
+
const path = require("path");
|
33
33
|
|
34
|
-
|
34
|
+
const url = require("url");
|
35
35
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
fs.lstat(filePath, function (error, stat) {
|
36
|
+
const http = require("http");
|
37
|
+
|
38
|
+
const fs = require("fs");
|
39
|
+
|
40
|
+
describe("node_stream", function () {
|
41
|
+
let server = null;
|
42
|
+
let port = null;
|
43
|
+
const pdf = url.parse(encodeURI("file://" + path.join(process.cwd(), "./test/pdfs/tracemonkey.pdf"))).href;
|
44
|
+
const pdfLength = 1016315;
|
45
|
+
beforeAll(done => {
|
46
|
+
server = http.createServer((request, response) => {
|
47
|
+
const filePath = process.cwd() + "/test/pdfs" + request.url;
|
48
|
+
fs.lstat(filePath, (error, stat) => {
|
50
49
|
if (error) {
|
51
50
|
response.writeHead(404);
|
52
|
-
response.end(
|
51
|
+
response.end(`File ${request.url} not found!`);
|
53
52
|
return;
|
54
53
|
}
|
55
|
-
|
56
|
-
|
57
|
-
|
54
|
+
|
55
|
+
if (!request.headers["range"]) {
|
56
|
+
const contentLength = stat.size;
|
57
|
+
const stream = fs.createReadStream(filePath);
|
58
58
|
response.writeHead(200, {
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
"Content-Type": "application/pdf",
|
60
|
+
"Content-Length": contentLength,
|
61
|
+
"Accept-Ranges": "bytes"
|
62
62
|
});
|
63
63
|
stream.pipe(response);
|
64
64
|
} else {
|
65
|
-
|
65
|
+
const [start, end] = request.headers["range"].split("=")[1].split("-").map(x => {
|
66
66
|
return Number(x);
|
67
|
-
}),
|
68
|
-
_request$headers$rang2 = _slicedToArray(_request$headers$rang, 2),
|
69
|
-
start = _request$headers$rang2[0],
|
70
|
-
end = _request$headers$rang2[1];
|
71
|
-
|
72
|
-
var _stream = fs.createReadStream(filePath, {
|
73
|
-
start: start,
|
74
|
-
end: end
|
75
67
|
});
|
76
|
-
|
77
|
-
|
68
|
+
const stream = fs.createReadStream(filePath, {
|
69
|
+
start,
|
70
|
+
end
|
71
|
+
});
|
72
|
+
response.writeHead(206, {
|
73
|
+
"Content-Type": "application/pdf"
|
74
|
+
});
|
75
|
+
stream.pipe(response);
|
78
76
|
}
|
79
77
|
});
|
80
78
|
}).listen(0);
|
81
79
|
port = server.address().port;
|
82
80
|
done();
|
83
81
|
});
|
84
|
-
afterAll(
|
82
|
+
afterAll(done => {
|
85
83
|
server.close();
|
86
84
|
done();
|
87
85
|
});
|
88
|
-
it(
|
89
|
-
|
90
|
-
url:
|
86
|
+
it("read both http(s) and filesystem pdf files", function (done) {
|
87
|
+
const stream1 = new _node_stream.PDFNodeStream({
|
88
|
+
url: `http://127.0.0.1:${port}/tracemonkey.pdf`,
|
91
89
|
rangeChunkSize: 65536,
|
92
90
|
disableStream: true,
|
93
91
|
disableRange: true
|
94
92
|
});
|
95
|
-
|
93
|
+
const stream2 = new _node_stream.PDFNodeStream({
|
96
94
|
url: pdf,
|
97
95
|
rangeChunkSize: 65536,
|
98
96
|
disableStream: true,
|
99
97
|
disableRange: true
|
100
98
|
});
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
var promise1 = fullReader1.headersReady.then(function () {
|
99
|
+
const fullReader1 = stream1.getFullReader();
|
100
|
+
const fullReader2 = stream2.getFullReader();
|
101
|
+
let isStreamingSupported1, isRangeSupported1;
|
102
|
+
const promise1 = fullReader1.headersReady.then(() => {
|
106
103
|
isStreamingSupported1 = fullReader1.isStreamingSupported;
|
107
104
|
isRangeSupported1 = fullReader1.isRangeSupported;
|
108
105
|
});
|
109
|
-
|
110
|
-
|
111
|
-
var promise2 = fullReader2.headersReady.then(function () {
|
106
|
+
let isStreamingSupported2, isRangeSupported2;
|
107
|
+
const promise2 = fullReader2.headersReady.then(() => {
|
112
108
|
isStreamingSupported2 = fullReader2.isStreamingSupported;
|
113
109
|
isRangeSupported2 = fullReader2.isRangeSupported;
|
114
110
|
});
|
115
|
-
|
111
|
+
let len1 = 0,
|
116
112
|
len2 = 0;
|
117
|
-
|
113
|
+
|
114
|
+
const read1 = function () {
|
118
115
|
return fullReader1.read().then(function (result) {
|
119
116
|
if (result.done) {
|
120
|
-
return;
|
117
|
+
return undefined;
|
121
118
|
}
|
119
|
+
|
122
120
|
len1 += result.value.byteLength;
|
123
121
|
return read1();
|
124
122
|
});
|
125
123
|
};
|
126
|
-
|
124
|
+
|
125
|
+
const read2 = function () {
|
127
126
|
return fullReader2.read().then(function (result) {
|
128
127
|
if (result.done) {
|
129
|
-
return;
|
128
|
+
return undefined;
|
130
129
|
}
|
130
|
+
|
131
131
|
len2 += result.value.byteLength;
|
132
132
|
return read2();
|
133
133
|
});
|
134
134
|
};
|
135
|
-
|
136
|
-
readPromise.
|
135
|
+
|
136
|
+
const readPromise = Promise.all([read1(), read2(), promise1, promise2]);
|
137
|
+
readPromise.then(result => {
|
137
138
|
expect(isStreamingSupported1).toEqual(false);
|
138
139
|
expect(isRangeSupported1).toEqual(false);
|
139
140
|
expect(isStreamingSupported2).toEqual(false);
|
@@ -141,65 +142,72 @@ describe('node_stream', function () {
|
|
141
142
|
expect(len1).toEqual(pdfLength);
|
142
143
|
expect(len1).toEqual(len2);
|
143
144
|
done();
|
144
|
-
}).catch(
|
145
|
+
}).catch(reason => {
|
145
146
|
done.fail(reason);
|
146
147
|
});
|
147
148
|
});
|
148
|
-
it(
|
149
|
-
|
150
|
-
|
151
|
-
url:
|
149
|
+
it("read custom ranges for both http(s) and filesystem urls", function (done) {
|
150
|
+
const rangeSize = 32768;
|
151
|
+
const stream1 = new _node_stream.PDFNodeStream({
|
152
|
+
url: `http://127.0.0.1:${port}/tracemonkey.pdf`,
|
152
153
|
length: pdfLength,
|
153
154
|
rangeChunkSize: rangeSize,
|
154
155
|
disableStream: true,
|
155
156
|
disableRange: false
|
156
157
|
});
|
157
|
-
|
158
|
+
const stream2 = new _node_stream.PDFNodeStream({
|
158
159
|
url: pdf,
|
159
160
|
length: pdfLength,
|
160
161
|
rangeChunkSize: rangeSize,
|
161
162
|
disableStream: true,
|
162
163
|
disableRange: false
|
163
164
|
});
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
var isStreamingSupported2 = void 0,
|
170
|
-
isRangeSupported2 = void 0,
|
171
|
-
fullReaderCancelled2 = void 0;
|
172
|
-
var promise1 = fullReader1.headersReady.then(function () {
|
165
|
+
const fullReader1 = stream1.getFullReader();
|
166
|
+
const fullReader2 = stream2.getFullReader();
|
167
|
+
let isStreamingSupported1, isRangeSupported1, fullReaderCancelled1;
|
168
|
+
let isStreamingSupported2, isRangeSupported2, fullReaderCancelled2;
|
169
|
+
const promise1 = fullReader1.headersReady.then(function () {
|
173
170
|
isStreamingSupported1 = fullReader1.isStreamingSupported;
|
174
171
|
isRangeSupported1 = fullReader1.isRangeSupported;
|
175
|
-
fullReader1.cancel(
|
172
|
+
fullReader1.cancel(new _util.AbortException("Don't need fullReader1."));
|
176
173
|
fullReaderCancelled1 = true;
|
177
174
|
});
|
178
|
-
|
175
|
+
const promise2 = fullReader2.headersReady.then(function () {
|
179
176
|
isStreamingSupported2 = fullReader2.isStreamingSupported;
|
180
177
|
isRangeSupported2 = fullReader2.isRangeSupported;
|
181
|
-
fullReader2.cancel(
|
178
|
+
fullReader2.cancel(new _util.AbortException("Don't need fullReader2."));
|
182
179
|
fullReaderCancelled2 = true;
|
183
180
|
});
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
181
|
+
const tailSize = pdfLength % rangeSize || rangeSize;
|
182
|
+
const range11Reader = stream1.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
|
183
|
+
const range12Reader = stream1.getRangeReader(pdfLength - tailSize, pdfLength);
|
184
|
+
const range21Reader = stream2.getRangeReader(pdfLength - tailSize - rangeSize, pdfLength - tailSize);
|
185
|
+
const range22Reader = stream2.getRangeReader(pdfLength - tailSize, pdfLength);
|
186
|
+
const result11 = {
|
187
|
+
value: 0
|
188
|
+
},
|
189
|
+
result12 = {
|
190
|
+
value: 0
|
191
|
+
};
|
192
|
+
const result21 = {
|
193
|
+
value: 0
|
194
|
+
},
|
195
|
+
result22 = {
|
196
|
+
value: 0
|
197
|
+
};
|
198
|
+
|
199
|
+
const read = function (reader, lenResult) {
|
194
200
|
return reader.read().then(function (result) {
|
195
201
|
if (result.done) {
|
196
|
-
return;
|
202
|
+
return undefined;
|
197
203
|
}
|
204
|
+
|
198
205
|
lenResult.value += result.value.byteLength;
|
199
206
|
return read(reader, lenResult);
|
200
207
|
});
|
201
208
|
};
|
202
|
-
|
209
|
+
|
210
|
+
const readPromises = Promise.all([read(range11Reader, result11), read(range12Reader, result12), read(range21Reader, result21), read(range22Reader, result22), promise1, promise2]);
|
203
211
|
readPromises.then(function () {
|
204
212
|
expect(result11.value).toEqual(rangeSize);
|
205
213
|
expect(result12.value).toEqual(tailSize);
|