pdfjs-dist 2.2.228 → 2.6.347
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/README.md +4 -0
- package/bower.json +1 -1
- package/build/pdf.js +8816 -19300
- 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 +27185 -35746
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +22 -1
- package/es5/build/pdf.js +26665 -0
- package/es5/build/pdf.js.map +1 -0
- package/es5/build/pdf.min.js +22 -0
- package/{lib/shared/global_scope.js → es5/build/pdf.worker.entry.js} +5 -10
- package/es5/build/pdf.worker.js +61231 -0
- package/es5/build/pdf.worker.js.map +1 -0
- package/es5/build/pdf.worker.min.js +22 -0
- package/es5/image_decoders/pdf.image_decoders.js +12529 -0
- package/es5/image_decoders/pdf.image_decoders.js.map +1 -0
- package/es5/image_decoders/pdf.image_decoders.min.js +22 -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/pdf_viewer.css +406 -0
- package/es5/web/pdf_viewer.js +7886 -0
- package/es5/web/pdf_viewer.js.map +1 -0
- package/image_decoders/pdf.image_decoders.js +1498 -4832
- 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 +1144 -927
- 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 +747 -716
- package/lib/core/charsets.js +4 -4
- package/lib/core/chunked_stream.js +462 -553
- package/lib/core/cmap.js +231 -277
- package/lib/core/colorspace.js +715 -857
- package/lib/core/core_utils.js +57 -52
- package/lib/core/crypto.js +416 -437
- package/lib/core/document.js +629 -670
- package/lib/core/encodings.js +15 -15
- package/lib/core/evaluator.js +3229 -2800
- package/lib/core/font_renderer.js +135 -178
- package/lib/core/fonts.js +602 -534
- package/lib/core/function.js +355 -279
- package/lib/core/glyphlist.js +4527 -4526
- package/lib/core/image.js +442 -439
- package/lib/core/image_utils.js +221 -61
- 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 +289 -233
- package/lib/core/jpx.js +161 -143
- package/lib/core/jpx_stream.js +28 -28
- package/lib/core/metrics.js +2928 -2928
- package/lib/core/murmurhash3.js +87 -102
- package/lib/core/obj.js +1343 -1300
- package/lib/core/operator_list.js +90 -67
- package/lib/core/parser.js +990 -987
- package/lib/core/pattern.js +105 -77
- package/lib/core/pdf_manager.js +149 -316
- package/lib/core/primitives.js +156 -104
- 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 +89 -69
- package/lib/core/unicode.js +1654 -1654
- package/lib/core/worker.js +275 -290
- package/lib/core/worker_stream.js +101 -210
- package/lib/core/writer.js +242 -0
- package/lib/display/annotation_layer.js +772 -1041
- package/lib/display/annotation_storage.js +89 -0
- package/lib/display/api.js +1575 -1868
- package/lib/display/api_compatibility.js +12 -17
- package/lib/display/canvas.js +370 -222
- package/lib/display/content_disposition.js +40 -59
- package/lib/display/display_utils.js +341 -536
- package/lib/display/fetch_stream.js +188 -304
- package/lib/display/font_loader.js +282 -414
- package/lib/display/metadata.js +81 -99
- package/lib/display/network.js +362 -511
- package/lib/display/network_utils.js +25 -18
- package/lib/display/node_stream.js +283 -465
- package/lib/display/node_utils.js +87 -0
- package/lib/display/optional_content_config.js +184 -0
- package/lib/display/pattern_helper.js +93 -44
- package/lib/display/svg.js +1163 -1401
- package/lib/display/text_layer.js +154 -137
- package/lib/display/transport_stream.js +237 -375
- 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 +37 -37
- package/lib/pdf.js +220 -58
- 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 +271 -306
- package/lib/test/unit/annotation_spec.js +1902 -763
- package/lib/test/unit/annotation_storage_spec.js +83 -0
- package/lib/test/unit/api_spec.js +790 -592
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +73 -72
- package/lib/test/unit/clitests_helper.js +7 -9
- package/lib/test/unit/cmap_spec.js +86 -88
- package/lib/test/unit/colorspace_spec.js +346 -154
- package/lib/test/unit/core_utils_spec.js +125 -105
- package/lib/test/unit/crypto_spec.js +232 -185
- package/lib/test/unit/custom_spec.js +150 -24
- package/lib/test/unit/display_svg_spec.js +34 -39
- package/lib/test/unit/display_utils_spec.js +139 -149
- package/lib/test/unit/document_spec.js +128 -17
- package/lib/test/unit/encodings_spec.js +12 -34
- package/lib/test/unit/evaluator_spec.js +112 -91
- package/lib/test/unit/fetch_stream_spec.js +31 -29
- package/lib/test/unit/function_spec.js +206 -204
- package/lib/test/unit/jasmine-boot.js +48 -32
- package/lib/test/unit/message_handler_spec.js +173 -159
- package/lib/test/unit/metadata_spec.js +71 -71
- package/lib/test/unit/murmurhash3_spec.js +12 -12
- package/lib/test/unit/network_spec.js +13 -11
- package/lib/test/unit/network_utils_spec.js +158 -144
- package/lib/test/unit/node_stream_spec.js +76 -90
- package/lib/test/unit/parser_spec.js +108 -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 +337 -156
- package/lib/test/unit/stream_spec.js +16 -14
- package/lib/test/unit/test_utils.js +91 -304
- package/lib/test/unit/testreporter.js +33 -22
- package/lib/test/unit/type1_parser_spec.js +42 -42
- package/lib/test/unit/ui_utils_spec.js +299 -461
- package/lib/test/unit/unicode_spec.js +42 -42
- package/lib/test/unit/util_spec.js +129 -149
- package/lib/test/unit/writer_spec.js +84 -0
- package/lib/web/annotation_layer_builder.js +78 -111
- package/lib/web/app.js +1542 -1267
- package/lib/web/app_options.js +76 -91
- package/lib/web/base_tree_viewer.js +100 -0
- package/lib/web/base_viewer.js +869 -834
- package/lib/web/chromecom.js +165 -252
- package/lib/web/debugger.js +149 -205
- package/lib/web/download_manager.js +34 -58
- package/lib/web/firefox_print_service.js +62 -34
- package/lib/web/firefoxcom.js +206 -374
- package/lib/web/genericcom.js +26 -108
- package/lib/web/genericl10n.js +24 -153
- package/lib/web/grab_to_pan.js +30 -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 +150 -126
- package/lib/web/pdf_cursor_tools.js +75 -102
- package/lib/web/pdf_document_properties.js +229 -383
- package/lib/web/pdf_find_bar.js +136 -170
- package/lib/web/pdf_find_controller.js +492 -548
- package/lib/web/pdf_find_utils.js +13 -13
- package/lib/web/pdf_history.js +397 -406
- package/lib/web/pdf_layer_viewer.js +208 -0
- package/lib/web/pdf_link_service.js +304 -348
- package/lib/web/pdf_outline_viewer.js +119 -212
- package/lib/web/pdf_page_view.js +474 -513
- package/lib/web/pdf_presentation_mode.js +308 -357
- package/lib/web/pdf_print_service.js +96 -110
- package/lib/web/pdf_rendering_queue.js +87 -108
- package/lib/web/pdf_sidebar.js +286 -302
- 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 +289 -297
- package/lib/web/pdf_thumbnail_viewer.js +202 -206
- package/lib/web/pdf_viewer.component.js +20 -21
- package/lib/web/pdf_viewer.js +55 -115
- package/lib/web/preferences.js +69 -273
- package/lib/web/secondary_toolbar.js +164 -196
- package/lib/web/text_layer_builder.js +284 -319
- package/lib/web/toolbar.js +217 -210
- package/lib/web/ui_utils.js +274 -421
- package/lib/web/view_history.js +52 -226
- package/lib/web/viewer_compatibility.js +21 -6
- package/package.json +4 -9
- package/types/display/annotation_layer.d.ts +61 -0
- package/types/display/annotation_storage.d.ts +36 -0
- package/types/display/api.d.ts +1107 -0
- package/types/display/api_compatibility.d.ts +1 -0
- package/types/display/canvas.d.ts +4 -0
- package/types/display/content_disposition.d.ts +7 -0
- package/types/display/display_utils.d.ts +243 -0
- package/types/display/fetch_stream.d.ts +67 -0
- package/types/display/font_loader.d.ts +19 -0
- package/types/display/metadata.d.ts +9 -0
- package/types/display/network.d.ts +80 -0
- package/types/display/network_utils.d.ts +14 -0
- package/types/display/node_stream.d.ts +72 -0
- package/types/display/node_utils.d.ts +6 -0
- package/types/display/optional_content_config.d.ts +12 -0
- package/types/display/pattern_helper.d.ts +5 -0
- package/types/display/svg.d.ts +2 -0
- package/types/display/text_layer.d.ts +83 -0
- package/types/display/transport_stream.d.ts +57 -0
- package/types/display/webgl.d.ts +20 -0
- package/types/display/worker_options.d.ts +27 -0
- package/types/display/xml_parser.d.ts +35 -0
- package/types/pdf.d.ts +33 -0
- package/types/shared/compatibility.d.ts +1 -0
- package/types/shared/is_node.d.ts +1 -0
- package/types/shared/message_handler.d.ts +62 -0
- package/types/shared/util.d.ts +421 -0
- package/web/images/shadow.png +0 -0
- package/web/pdf_viewer.css +29 -27
- package/web/pdf_viewer.js +3524 -4746
- package/web/pdf_viewer.js.map +1 -1
- package/webpack.js +6 -5
- package/external/streams/streams-lib.js +0 -3962
- package/external/url/url-lib.js +0 -627
- package/lib/shared/streams_polyfill.js +0 -43
- package/lib/shared/url_polyfill.js +0 -56
- package/web/images/texture.png +0 -0
@@ -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.
|
@@ -21,18 +21,18 @@
|
|
21
21
|
*/
|
22
22
|
"use strict";
|
23
23
|
|
24
|
-
var _test_utils = require("./test_utils");
|
24
|
+
var _test_utils = require("./test_utils.js");
|
25
25
|
|
26
|
-
var _display_utils = require("../../display/display_utils");
|
26
|
+
var _display_utils = require("../../display/display_utils.js");
|
27
27
|
|
28
|
-
var _api = require("../../display/api");
|
28
|
+
var _api = require("../../display/api.js");
|
29
29
|
|
30
|
-
var _is_node =
|
30
|
+
var _is_node = require("../../shared/is_node.js");
|
31
31
|
|
32
|
-
|
32
|
+
var _node_utils = require("../../display/node_utils.js");
|
33
33
|
|
34
34
|
function getTopLeftPixel(canvasContext) {
|
35
|
-
|
35
|
+
const imgData = canvasContext.getImageData(0, 0, 1, 1);
|
36
36
|
return {
|
37
37
|
r: imgData.data[0],
|
38
38
|
g: imgData.data[1],
|
@@ -41,14 +41,14 @@ function getTopLeftPixel(canvasContext) {
|
|
41
41
|
};
|
42
42
|
}
|
43
43
|
|
44
|
-
describe(
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
44
|
+
describe("custom canvas rendering", function () {
|
45
|
+
const transparentGetDocumentParams = (0, _test_utils.buildGetDocumentParams)("transparent.pdf");
|
46
|
+
let CanvasFactory;
|
47
|
+
let loadingTask;
|
48
|
+
let page;
|
49
49
|
beforeAll(function (done) {
|
50
|
-
if (
|
51
|
-
CanvasFactory = new
|
50
|
+
if (_is_node.isNodeJS) {
|
51
|
+
CanvasFactory = new _node_utils.NodeCanvasFactory();
|
52
52
|
} else {
|
53
53
|
CanvasFactory = new _display_utils.DOMCanvasFactory();
|
54
54
|
}
|
@@ -59,21 +59,21 @@ describe('custom canvas rendering', function () {
|
|
59
59
|
}).then(function (data) {
|
60
60
|
page = data;
|
61
61
|
done();
|
62
|
-
})
|
62
|
+
}).catch(done.fail);
|
63
63
|
});
|
64
64
|
afterAll(function (done) {
|
65
65
|
CanvasFactory = null;
|
66
66
|
page = null;
|
67
67
|
loadingTask.destroy().then(done);
|
68
68
|
});
|
69
|
-
it(
|
69
|
+
it("renders to canvas with a default white background", function (done) {
|
70
70
|
var viewport = page.getViewport({
|
71
71
|
scale: 1
|
72
72
|
});
|
73
73
|
var canvasAndCtx = CanvasFactory.create(viewport.width, viewport.height);
|
74
|
-
|
74
|
+
const renderTask = page.render({
|
75
75
|
canvasContext: canvasAndCtx.context,
|
76
|
-
viewport
|
76
|
+
viewport
|
77
77
|
});
|
78
78
|
renderTask.promise.then(function () {
|
79
79
|
expect(getTopLeftPixel(canvasAndCtx.context)).toEqual({
|
@@ -84,17 +84,17 @@ describe('custom canvas rendering', function () {
|
|
84
84
|
});
|
85
85
|
CanvasFactory.destroy(canvasAndCtx);
|
86
86
|
done();
|
87
|
-
})
|
87
|
+
}).catch(done.fail);
|
88
88
|
});
|
89
|
-
it(
|
89
|
+
it("renders to canvas with a custom background", function (done) {
|
90
90
|
var viewport = page.getViewport({
|
91
91
|
scale: 1
|
92
92
|
});
|
93
93
|
var canvasAndCtx = CanvasFactory.create(viewport.width, viewport.height);
|
94
|
-
|
94
|
+
const renderTask = page.render({
|
95
95
|
canvasContext: canvasAndCtx.context,
|
96
|
-
viewport
|
97
|
-
background:
|
96
|
+
viewport,
|
97
|
+
background: "rgba(255,0,0,1.0)"
|
98
98
|
});
|
99
99
|
renderTask.promise.then(function () {
|
100
100
|
expect(getTopLeftPixel(canvasAndCtx.context)).toEqual({
|
@@ -105,6 +105,132 @@ describe('custom canvas rendering', function () {
|
|
105
105
|
});
|
106
106
|
CanvasFactory.destroy(canvasAndCtx);
|
107
107
|
done();
|
108
|
-
})
|
108
|
+
}).catch(done.fail);
|
109
|
+
});
|
110
|
+
});
|
111
|
+
describe("custom ownerDocument", function () {
|
112
|
+
const FontFace = globalThis.FontFace;
|
113
|
+
|
114
|
+
const checkFont = font => /g_d\d+_f1/.test(font.family);
|
115
|
+
|
116
|
+
const checkFontFaceRule = rule => /^@font-face {font-family:"g_d\d+_f1";src:/.test(rule);
|
117
|
+
|
118
|
+
beforeEach(() => {
|
119
|
+
globalThis.FontFace = function MockFontFace(name) {
|
120
|
+
this.family = name;
|
121
|
+
};
|
122
|
+
});
|
123
|
+
afterEach(() => {
|
124
|
+
globalThis.FontFace = FontFace;
|
125
|
+
});
|
126
|
+
|
127
|
+
function getMocks() {
|
128
|
+
const elements = [];
|
129
|
+
|
130
|
+
const createElement = name => {
|
131
|
+
let element = typeof document !== "undefined" && document.createElement(name);
|
132
|
+
|
133
|
+
if (name === "style") {
|
134
|
+
element = {
|
135
|
+
tagName: name,
|
136
|
+
sheet: {
|
137
|
+
cssRules: [],
|
138
|
+
|
139
|
+
insertRule(rule) {
|
140
|
+
this.cssRules.push(rule);
|
141
|
+
}
|
142
|
+
|
143
|
+
}
|
144
|
+
};
|
145
|
+
Object.assign(element, {
|
146
|
+
remove() {
|
147
|
+
this.remove.called = true;
|
148
|
+
}
|
149
|
+
|
150
|
+
});
|
151
|
+
}
|
152
|
+
|
153
|
+
elements.push(element);
|
154
|
+
return element;
|
155
|
+
};
|
156
|
+
|
157
|
+
const ownerDocument = {
|
158
|
+
fonts: new Set(),
|
159
|
+
createElement,
|
160
|
+
documentElement: {
|
161
|
+
getElementsByTagName: () => [{
|
162
|
+
appendChild: () => {}
|
163
|
+
}]
|
164
|
+
}
|
165
|
+
};
|
166
|
+
const CanvasFactory = _is_node.isNodeJS ? new _node_utils.NodeCanvasFactory() : new _display_utils.DOMCanvasFactory({
|
167
|
+
ownerDocument
|
168
|
+
});
|
169
|
+
return {
|
170
|
+
elements,
|
171
|
+
ownerDocument,
|
172
|
+
CanvasFactory
|
173
|
+
};
|
174
|
+
}
|
175
|
+
|
176
|
+
it("should use given document for loading fonts (with Font Loading API)", async function () {
|
177
|
+
const {
|
178
|
+
ownerDocument,
|
179
|
+
elements,
|
180
|
+
CanvasFactory
|
181
|
+
} = getMocks();
|
182
|
+
const getDocumentParams = (0, _test_utils.buildGetDocumentParams)("TrueType_without_cmap.pdf", {
|
183
|
+
disableFontFace: false,
|
184
|
+
ownerDocument
|
185
|
+
});
|
186
|
+
const loadingTask = (0, _api.getDocument)(getDocumentParams);
|
187
|
+
const doc = await loadingTask.promise;
|
188
|
+
const page = await doc.getPage(1);
|
189
|
+
const viewport = page.getViewport({
|
190
|
+
scale: 1
|
191
|
+
});
|
192
|
+
const canvasAndCtx = CanvasFactory.create(viewport.width, viewport.height);
|
193
|
+
await page.render({
|
194
|
+
canvasContext: canvasAndCtx.context,
|
195
|
+
viewport
|
196
|
+
}).promise;
|
197
|
+
const style = elements.find(element => element.tagName === "style");
|
198
|
+
expect(style).toBeFalsy();
|
199
|
+
expect(ownerDocument.fonts.size).toBeGreaterThanOrEqual(1);
|
200
|
+
expect(Array.from(ownerDocument.fonts).find(checkFont)).toBeTruthy();
|
201
|
+
await doc.destroy();
|
202
|
+
await loadingTask.destroy();
|
203
|
+
CanvasFactory.destroy(canvasAndCtx);
|
204
|
+
expect(ownerDocument.fonts.size).toBe(0);
|
205
|
+
});
|
206
|
+
it("should use given document for loading fonts (with CSS rules)", async function () {
|
207
|
+
const {
|
208
|
+
ownerDocument,
|
209
|
+
elements,
|
210
|
+
CanvasFactory
|
211
|
+
} = getMocks();
|
212
|
+
ownerDocument.fonts = null;
|
213
|
+
const getDocumentParams = (0, _test_utils.buildGetDocumentParams)("TrueType_without_cmap.pdf", {
|
214
|
+
disableFontFace: false,
|
215
|
+
ownerDocument
|
216
|
+
});
|
217
|
+
const loadingTask = (0, _api.getDocument)(getDocumentParams);
|
218
|
+
const doc = await loadingTask.promise;
|
219
|
+
const page = await doc.getPage(1);
|
220
|
+
const viewport = page.getViewport({
|
221
|
+
scale: 1
|
222
|
+
});
|
223
|
+
const canvasAndCtx = CanvasFactory.create(viewport.width, viewport.height);
|
224
|
+
await page.render({
|
225
|
+
canvasContext: canvasAndCtx.context,
|
226
|
+
viewport
|
227
|
+
}).promise;
|
228
|
+
const style = elements.find(element => element.tagName === "style");
|
229
|
+
expect(style.sheet.cssRules.length).toBeGreaterThanOrEqual(1);
|
230
|
+
expect(style.sheet.cssRules.find(checkFontFaceRule)).toBeTruthy();
|
231
|
+
await doc.destroy();
|
232
|
+
await loadingTask.destroy();
|
233
|
+
CanvasFactory.destroy(canvasAndCtx);
|
234
|
+
expect(style.remove.called).toBe(true);
|
109
235
|
});
|
110
236
|
});
|
@@ -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.
|
@@ -21,42 +21,38 @@
|
|
21
21
|
*/
|
22
22
|
"use strict";
|
23
23
|
|
24
|
-
var _domstubs = require("../../examples/node/domstubs");
|
24
|
+
var _domstubs = require("../../examples/node/domstubs.js");
|
25
25
|
|
26
|
-
var _test_utils = require("./test_utils");
|
26
|
+
var _test_utils = require("./test_utils.js");
|
27
27
|
|
28
|
-
var _api = require("../../display/api");
|
28
|
+
var _api = require("../../display/api.js");
|
29
29
|
|
30
|
-
var _is_node =
|
30
|
+
var _is_node = require("../../shared/is_node.js");
|
31
31
|
|
32
|
-
var
|
32
|
+
var _svg = require("../../display/svg.js");
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
37
|
-
|
38
|
-
var XLINK_NS = 'http://www.w3.org/1999/xlink';
|
34
|
+
const XLINK_NS = "http://www.w3.org/1999/xlink";
|
39
35
|
|
40
36
|
function withZlib(isZlibRequired, callback) {
|
41
37
|
if (isZlibRequired) {
|
42
|
-
if (!
|
43
|
-
throw new Error(
|
38
|
+
if (!_is_node.isNodeJS) {
|
39
|
+
throw new Error("zlib test can only be run in Node.js");
|
44
40
|
}
|
45
41
|
|
46
42
|
return callback();
|
47
43
|
}
|
48
44
|
|
49
|
-
if (!
|
45
|
+
if (!_is_node.isNodeJS) {
|
50
46
|
return callback();
|
51
47
|
}
|
52
48
|
|
53
|
-
var zlib = require(
|
49
|
+
var zlib = require("zlib");
|
54
50
|
|
55
51
|
var deflateSync = zlib.deflateSync;
|
56
52
|
zlib.deflateSync = disabledDeflateSync;
|
57
53
|
|
58
54
|
function disabledDeflateSync() {
|
59
|
-
throw new Error(
|
55
|
+
throw new Error("zlib.deflateSync is explicitly disabled for testing.");
|
60
56
|
}
|
61
57
|
|
62
58
|
function restoreDeflateSync() {
|
@@ -70,13 +66,11 @@ function withZlib(isZlibRequired, callback) {
|
|
70
66
|
return promise;
|
71
67
|
}
|
72
68
|
|
73
|
-
describe(
|
69
|
+
describe("SVGGraphics", function () {
|
74
70
|
var loadingTask;
|
75
71
|
var page;
|
76
72
|
beforeAll(function (done) {
|
77
|
-
loadingTask = (0, _api.getDocument)((0, _test_utils.buildGetDocumentParams)(
|
78
|
-
nativeImageDecoderSupport: _util.NativeImageDecoding.DISPLAY
|
79
|
-
}));
|
73
|
+
loadingTask = (0, _api.getDocument)((0, _test_utils.buildGetDocumentParams)("xobject-image.pdf"));
|
80
74
|
loadingTask.promise.then(function (doc) {
|
81
75
|
doc.getPage(1).then(function (firstPage) {
|
82
76
|
page = firstPage;
|
@@ -87,7 +81,7 @@ describe('SVGGraphics', function () {
|
|
87
81
|
afterAll(function (done) {
|
88
82
|
loadingTask.destroy().then(done);
|
89
83
|
});
|
90
|
-
describe(
|
84
|
+
describe("paintImageXObject", function () {
|
91
85
|
function getSVGImage() {
|
92
86
|
var svgGfx;
|
93
87
|
return page.getOperatorList().then(function (opList) {
|
@@ -97,13 +91,14 @@ describe('SVGGraphics', function () {
|
|
97
91
|
}).then(function () {
|
98
92
|
var svgImg;
|
99
93
|
var elementContainer = {
|
100
|
-
appendChild
|
94
|
+
appendChild(element) {
|
101
95
|
svgImg = element;
|
102
96
|
}
|
97
|
+
|
103
98
|
};
|
104
|
-
var xobjectObjId =
|
99
|
+
var xobjectObjId = "img_p0_1";
|
105
100
|
|
106
|
-
if (
|
101
|
+
if (_is_node.isNodeJS) {
|
107
102
|
(0, _domstubs.setStubs)(global);
|
108
103
|
}
|
109
104
|
|
@@ -111,7 +106,7 @@ describe('SVGGraphics', function () {
|
|
111
106
|
var imgData = svgGfx.objs.get(xobjectObjId);
|
112
107
|
svgGfx.paintInlineImageXObject(imgData, elementContainer);
|
113
108
|
} finally {
|
114
|
-
if (
|
109
|
+
if (_is_node.isNodeJS) {
|
115
110
|
(0, _domstubs.unsetStubs)(global);
|
116
111
|
}
|
117
112
|
}
|
@@ -122,37 +117,37 @@ describe('SVGGraphics', function () {
|
|
122
117
|
|
123
118
|
it('should fail require("zlib") unless in Node.js', function () {
|
124
119
|
function testFunc() {
|
125
|
-
require(
|
120
|
+
require("zlib");
|
126
121
|
}
|
127
122
|
|
128
123
|
expect(testFunc.toString()).toMatch(/\srequire\(["']zlib["']\)/);
|
129
124
|
|
130
|
-
if (
|
125
|
+
if (_is_node.isNodeJS) {
|
131
126
|
expect(testFunc).not.toThrow();
|
132
127
|
} else {
|
133
128
|
expect(testFunc).toThrow();
|
134
129
|
}
|
135
130
|
});
|
136
|
-
it(
|
137
|
-
if (!
|
138
|
-
pending(
|
131
|
+
it("should produce a reasonably small svg:image", function (done) {
|
132
|
+
if (!_is_node.isNodeJS) {
|
133
|
+
pending("zlib.deflateSync is not supported in non-Node environments.");
|
139
134
|
}
|
140
135
|
|
141
136
|
withZlib(true, getSVGImage).then(function (svgImg) {
|
142
|
-
expect(svgImg.nodeName).toBe(
|
143
|
-
expect(svgImg.getAttributeNS(null,
|
144
|
-
expect(svgImg.getAttributeNS(null,
|
145
|
-
var imgUrl = svgImg.getAttributeNS(XLINK_NS,
|
137
|
+
expect(svgImg.nodeName).toBe("svg:image");
|
138
|
+
expect(svgImg.getAttributeNS(null, "width")).toBe("200px");
|
139
|
+
expect(svgImg.getAttributeNS(null, "height")).toBe("100px");
|
140
|
+
var imgUrl = svgImg.getAttributeNS(XLINK_NS, "href");
|
146
141
|
expect(imgUrl).toMatch(/^data:image\/png;base64,/);
|
147
142
|
expect(imgUrl.length).toBeLessThan(367);
|
148
143
|
}).then(done, done.fail);
|
149
144
|
});
|
150
|
-
it(
|
145
|
+
it("should be able to produce a svg:image without zlib", function (done) {
|
151
146
|
withZlib(false, getSVGImage).then(function (svgImg) {
|
152
|
-
expect(svgImg.nodeName).toBe(
|
153
|
-
expect(svgImg.getAttributeNS(null,
|
154
|
-
expect(svgImg.getAttributeNS(null,
|
155
|
-
var imgUrl = svgImg.getAttributeNS(XLINK_NS,
|
147
|
+
expect(svgImg.nodeName).toBe("svg:image");
|
148
|
+
expect(svgImg.getAttributeNS(null, "width")).toBe("200px");
|
149
|
+
expect(svgImg.getAttributeNS(null, "height")).toBe("100px");
|
150
|
+
var imgUrl = svgImg.getAttributeNS(XLINK_NS, "href");
|
156
151
|
expect(imgUrl).toMatch(/^data:image\/png;base64,/);
|
157
152
|
expect(imgUrl.length).toBe(80246);
|
158
153
|
}).then(done, done.fail);
|