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
package/lib/core/pattern.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.
|
@@ -27,13 +27,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
27
27
|
exports.getTilingPatternIR = getTilingPatternIR;
|
28
28
|
exports.Pattern = void 0;
|
29
29
|
|
30
|
-
var _util = require("../shared/util");
|
30
|
+
var _util = require("../shared/util.js");
|
31
31
|
|
32
|
-
var _colorspace = require("./colorspace");
|
32
|
+
var _colorspace = require("./colorspace.js");
|
33
33
|
|
34
|
-
var _primitives = require("./primitives");
|
34
|
+
var _primitives = require("./primitives.js");
|
35
35
|
|
36
|
-
var _core_utils = require("./core_utils");
|
36
|
+
var _core_utils = require("./core_utils.js");
|
37
37
|
|
38
38
|
var ShadingType = {
|
39
39
|
FUNCTION_BASED: 1,
|
@@ -47,40 +47,40 @@ var ShadingType = {
|
|
47
47
|
|
48
48
|
var Pattern = function PatternClosure() {
|
49
49
|
function Pattern() {
|
50
|
-
(0, _util.unreachable)(
|
50
|
+
(0, _util.unreachable)("should not call Pattern constructor");
|
51
51
|
}
|
52
52
|
|
53
53
|
Pattern.prototype = {
|
54
54
|
getPattern: function Pattern_getPattern(ctx) {
|
55
|
-
(0, _util.unreachable)(
|
55
|
+
(0, _util.unreachable)(`Should not call Pattern.getStyle: ${ctx}`);
|
56
56
|
}
|
57
57
|
};
|
58
58
|
|
59
|
-
Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory) {
|
59
|
+
Pattern.parseShading = function (shading, matrix, xref, res, handler, pdfFunctionFactory, localColorSpaceCache) {
|
60
60
|
var dict = (0, _primitives.isStream)(shading) ? shading.dict : shading;
|
61
|
-
var type = dict.get(
|
61
|
+
var type = dict.get("ShadingType");
|
62
62
|
|
63
63
|
try {
|
64
64
|
switch (type) {
|
65
65
|
case ShadingType.AXIAL:
|
66
66
|
case ShadingType.RADIAL:
|
67
|
-
return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory);
|
67
|
+
return new Shadings.RadialAxial(dict, matrix, xref, res, pdfFunctionFactory, localColorSpaceCache);
|
68
68
|
|
69
69
|
case ShadingType.FREE_FORM_MESH:
|
70
70
|
case ShadingType.LATTICE_FORM_MESH:
|
71
71
|
case ShadingType.COONS_PATCH_MESH:
|
72
72
|
case ShadingType.TENSOR_PATCH_MESH:
|
73
|
-
return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory);
|
73
|
+
return new Shadings.Mesh(shading, matrix, xref, res, pdfFunctionFactory, localColorSpaceCache);
|
74
74
|
|
75
75
|
default:
|
76
|
-
throw new _util.FormatError(
|
76
|
+
throw new _util.FormatError("Unsupported ShadingType: " + type);
|
77
77
|
}
|
78
78
|
} catch (ex) {
|
79
79
|
if (ex instanceof _core_utils.MissingDataException) {
|
80
80
|
throw ex;
|
81
81
|
}
|
82
82
|
|
83
|
-
handler.send(
|
83
|
+
handler.send("UnsupportedFeature", {
|
84
84
|
featureId: _util.UNSUPPORTED_FEATURES.shadingPattern
|
85
85
|
});
|
86
86
|
(0, _util.warn)(ex);
|
@@ -96,19 +96,34 @@ var Shadings = {};
|
|
96
96
|
Shadings.SMALL_NUMBER = 1e-6;
|
97
97
|
|
98
98
|
Shadings.RadialAxial = function RadialAxialClosure() {
|
99
|
-
function RadialAxial(dict, matrix, xref,
|
99
|
+
function RadialAxial(dict, matrix, xref, resources, pdfFunctionFactory, localColorSpaceCache) {
|
100
100
|
this.matrix = matrix;
|
101
|
-
this.coordsArr = dict.getArray(
|
102
|
-
this.shadingType = dict.get(
|
103
|
-
this.type =
|
104
|
-
|
105
|
-
cs = _colorspace.ColorSpace.parse(
|
101
|
+
this.coordsArr = dict.getArray("Coords");
|
102
|
+
this.shadingType = dict.get("ShadingType");
|
103
|
+
this.type = "Pattern";
|
104
|
+
|
105
|
+
const cs = _colorspace.ColorSpace.parse({
|
106
|
+
cs: dict.getRaw("ColorSpace") || dict.getRaw("CS"),
|
107
|
+
xref,
|
108
|
+
resources,
|
109
|
+
pdfFunctionFactory,
|
110
|
+
localColorSpaceCache
|
111
|
+
});
|
112
|
+
|
106
113
|
this.cs = cs;
|
114
|
+
const bbox = dict.getArray("BBox");
|
115
|
+
|
116
|
+
if (Array.isArray(bbox) && bbox.length === 4) {
|
117
|
+
this.bbox = _util.Util.normalizeRect(bbox);
|
118
|
+
} else {
|
119
|
+
this.bbox = null;
|
120
|
+
}
|
121
|
+
|
107
122
|
var t0 = 0.0,
|
108
123
|
t1 = 1.0;
|
109
124
|
|
110
|
-
if (dict.has(
|
111
|
-
var domainArr = dict.getArray(
|
125
|
+
if (dict.has("Domain")) {
|
126
|
+
var domainArr = dict.getArray("Domain");
|
112
127
|
t0 = domainArr[0];
|
113
128
|
t1 = domainArr[1];
|
114
129
|
}
|
@@ -116,8 +131,8 @@ Shadings.RadialAxial = function RadialAxialClosure() {
|
|
116
131
|
var extendStart = false,
|
117
132
|
extendEnd = false;
|
118
133
|
|
119
|
-
if (dict.has(
|
120
|
-
var extendArr = dict.getArray(
|
134
|
+
if (dict.has("Extend")) {
|
135
|
+
var extendArr = dict.getArray("Extend");
|
121
136
|
extendStart = extendArr[0];
|
122
137
|
extendEnd = extendArr[1];
|
123
138
|
}
|
@@ -132,20 +147,20 @@ Shadings.RadialAxial = function RadialAxialClosure() {
|
|
132
147
|
var distance = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2));
|
133
148
|
|
134
149
|
if (r1 <= r2 + distance && r2 <= r1 + distance) {
|
135
|
-
(0, _util.warn)(
|
150
|
+
(0, _util.warn)("Unsupported radial gradient.");
|
136
151
|
}
|
137
152
|
}
|
138
153
|
|
139
154
|
this.extendStart = extendStart;
|
140
155
|
this.extendEnd = extendEnd;
|
141
|
-
var fnObj = dict.
|
156
|
+
var fnObj = dict.getRaw("Function");
|
142
157
|
var fn = pdfFunctionFactory.createFromArray(fnObj);
|
143
|
-
|
144
|
-
|
158
|
+
const NUMBER_OF_SAMPLES = 10;
|
159
|
+
const step = (t1 - t0) / NUMBER_OF_SAMPLES;
|
145
160
|
var colorStops = this.colorStops = [];
|
146
161
|
|
147
162
|
if (t0 >= t1 || step <= 0) {
|
148
|
-
(0, _util.info)(
|
163
|
+
(0, _util.info)("Bad shading domain.");
|
149
164
|
return;
|
150
165
|
}
|
151
166
|
|
@@ -153,20 +168,20 @@ Shadings.RadialAxial = function RadialAxialClosure() {
|
|
153
168
|
ratio = new Float32Array(1);
|
154
169
|
var rgbColor;
|
155
170
|
|
156
|
-
for (
|
157
|
-
ratio[0] = i;
|
171
|
+
for (let i = 0; i <= NUMBER_OF_SAMPLES; i++) {
|
172
|
+
ratio[0] = t0 + i * step;
|
158
173
|
fn(ratio, 0, color, 0);
|
159
174
|
rgbColor = cs.getRgb(color, 0);
|
160
175
|
|
161
176
|
var cssColor = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);
|
162
177
|
|
163
|
-
colorStops.push([
|
178
|
+
colorStops.push([i / NUMBER_OF_SAMPLES, cssColor]);
|
164
179
|
}
|
165
180
|
|
166
|
-
var background =
|
181
|
+
var background = "transparent";
|
167
182
|
|
168
|
-
if (dict.has(
|
169
|
-
rgbColor = cs.getRgb(dict.get(
|
183
|
+
if (dict.has("Background")) {
|
184
|
+
rgbColor = cs.getRgb(dict.get("Background"), 0);
|
170
185
|
background = _util.Util.makeCssRgb(rgbColor[0], rgbColor[1], rgbColor[2]);
|
171
186
|
}
|
172
187
|
|
@@ -194,15 +209,15 @@ Shadings.RadialAxial = function RadialAxialClosure() {
|
|
194
209
|
p1 = [coordsArr[2], coordsArr[3]];
|
195
210
|
r0 = null;
|
196
211
|
r1 = null;
|
197
|
-
type =
|
212
|
+
type = "axial";
|
198
213
|
} else if (shadingType === ShadingType.RADIAL) {
|
199
214
|
p0 = [coordsArr[0], coordsArr[1]];
|
200
215
|
p1 = [coordsArr[3], coordsArr[4]];
|
201
216
|
r0 = coordsArr[2];
|
202
217
|
r1 = coordsArr[5];
|
203
|
-
type =
|
218
|
+
type = "radial";
|
204
219
|
} else {
|
205
|
-
(0, _util.unreachable)(
|
220
|
+
(0, _util.unreachable)(`getPattern type unknown: ${shadingType}`);
|
206
221
|
}
|
207
222
|
|
208
223
|
var matrix = this.matrix;
|
@@ -219,7 +234,7 @@ Shadings.RadialAxial = function RadialAxialClosure() {
|
|
219
234
|
}
|
220
235
|
}
|
221
236
|
|
222
|
-
return [
|
237
|
+
return ["RadialAxial", type, this.bbox, this.colorStops, p0, p1, r0, r1];
|
223
238
|
}
|
224
239
|
};
|
225
240
|
return RadialAxial;
|
@@ -270,7 +285,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
270
285
|
buffer = buffer << 24 | this.stream.getByte() << 16 | this.stream.getByte() << 8 | this.stream.getByte();
|
271
286
|
var nextByte = this.stream.getByte();
|
272
287
|
this.buffer = nextByte & (1 << bufferLength) - 1;
|
273
|
-
return (buffer << 8 - bufferLength | (nextByte &
|
288
|
+
return (buffer << 8 - bufferLength | (nextByte & 0xff) >> bufferLength) >>> 0;
|
274
289
|
}
|
275
290
|
|
276
291
|
if (n === 8 && bufferLength === 0) {
|
@@ -338,7 +353,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
338
353
|
|
339
354
|
if (verticesLeft === 0) {
|
340
355
|
if (!(0 <= f && f <= 2)) {
|
341
|
-
throw new _util.FormatError(
|
356
|
+
throw new _util.FormatError("Unknown type4 flag");
|
342
357
|
}
|
343
358
|
|
344
359
|
switch (f) {
|
@@ -368,7 +383,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
368
383
|
}
|
369
384
|
|
370
385
|
mesh.figures.push({
|
371
|
-
type:
|
386
|
+
type: "triangles",
|
372
387
|
coords: new Int32Array(ps),
|
373
388
|
colors: new Int32Array(ps)
|
374
389
|
});
|
@@ -388,10 +403,10 @@ Shadings.Mesh = function MeshClosure() {
|
|
388
403
|
}
|
389
404
|
|
390
405
|
mesh.figures.push({
|
391
|
-
type:
|
406
|
+
type: "lattice",
|
392
407
|
coords: new Int32Array(ps),
|
393
408
|
colors: new Int32Array(ps),
|
394
|
-
verticesPerRow
|
409
|
+
verticesPerRow
|
395
410
|
});
|
396
411
|
}
|
397
412
|
|
@@ -424,7 +439,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
424
439
|
|
425
440
|
function buildFigureFromPatch(mesh, index) {
|
426
441
|
var figure = mesh.figures[index];
|
427
|
-
(0, _util.assert)(figure.type ===
|
442
|
+
(0, _util.assert)(figure.type === "patch", "Unexpected patch mesh figure");
|
428
443
|
var coords = mesh.coords,
|
429
444
|
colors = mesh.colors;
|
430
445
|
var pi = figure.coords;
|
@@ -495,10 +510,10 @@ Shadings.Mesh = function MeshClosure() {
|
|
495
510
|
figureCoords[verticesPerRow * splitYBy + splitXBy] = pi[15];
|
496
511
|
figureColors[verticesPerRow * splitYBy + splitXBy] = ci[3];
|
497
512
|
mesh.figures[index] = {
|
498
|
-
type:
|
513
|
+
type: "lattice",
|
499
514
|
coords: figureCoords,
|
500
515
|
colors: figureColors,
|
501
|
-
verticesPerRow
|
516
|
+
verticesPerRow
|
502
517
|
};
|
503
518
|
}
|
504
519
|
|
@@ -512,7 +527,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
512
527
|
var f = reader.readFlag();
|
513
528
|
|
514
529
|
if (!(0 <= f && f <= 3)) {
|
515
|
-
throw new _util.FormatError(
|
530
|
+
throw new _util.FormatError("Unknown type6 flag");
|
516
531
|
}
|
517
532
|
|
518
533
|
var i, ii;
|
@@ -626,7 +641,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
626
641
|
ps[10] = coords.length;
|
627
642
|
coords.push([(-4 * coords[ps[15]][0] - coords[ps[0]][0] + 6 * (coords[ps[11]][0] + coords[ps[14]][0]) - 2 * (coords[ps[12]][0] + coords[ps[3]][0]) + 3 * (coords[ps[2]][0] + coords[ps[8]][0])) / 9, (-4 * coords[ps[15]][1] - coords[ps[0]][1] + 6 * (coords[ps[11]][1] + coords[ps[14]][1]) - 2 * (coords[ps[12]][1] + coords[ps[3]][1]) + 3 * (coords[ps[2]][1] + coords[ps[8]][1])) / 9]);
|
628
643
|
mesh.figures.push({
|
629
|
-
type:
|
644
|
+
type: "patch",
|
630
645
|
coords: new Int32Array(ps),
|
631
646
|
colors: new Int32Array(cs)
|
632
647
|
});
|
@@ -643,7 +658,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
643
658
|
var f = reader.readFlag();
|
644
659
|
|
645
660
|
if (!(0 <= f && f <= 3)) {
|
646
|
-
throw new _util.FormatError(
|
661
|
+
throw new _util.FormatError("Unknown type7 flag");
|
647
662
|
}
|
648
663
|
|
649
664
|
var i, ii;
|
@@ -765,7 +780,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
765
780
|
}
|
766
781
|
|
767
782
|
mesh.figures.push({
|
768
|
-
type:
|
783
|
+
type: "patch",
|
769
784
|
coords: new Int32Array(ps),
|
770
785
|
colors: new Int32Array(cs)
|
771
786
|
});
|
@@ -827,30 +842,43 @@ Shadings.Mesh = function MeshClosure() {
|
|
827
842
|
}
|
828
843
|
}
|
829
844
|
|
830
|
-
function Mesh(stream, matrix, xref,
|
845
|
+
function Mesh(stream, matrix, xref, resources, pdfFunctionFactory, localColorSpaceCache) {
|
831
846
|
if (!(0, _primitives.isStream)(stream)) {
|
832
|
-
throw new _util.FormatError(
|
847
|
+
throw new _util.FormatError("Mesh data is not a stream");
|
833
848
|
}
|
834
849
|
|
835
850
|
var dict = stream.dict;
|
836
851
|
this.matrix = matrix;
|
837
|
-
this.shadingType = dict.get(
|
838
|
-
this.type =
|
839
|
-
|
840
|
-
|
841
|
-
|
852
|
+
this.shadingType = dict.get("ShadingType");
|
853
|
+
this.type = "Pattern";
|
854
|
+
const bbox = dict.getArray("BBox");
|
855
|
+
|
856
|
+
if (Array.isArray(bbox) && bbox.length === 4) {
|
857
|
+
this.bbox = _util.Util.normalizeRect(bbox);
|
858
|
+
} else {
|
859
|
+
this.bbox = null;
|
860
|
+
}
|
861
|
+
|
862
|
+
const cs = _colorspace.ColorSpace.parse({
|
863
|
+
cs: dict.getRaw("ColorSpace") || dict.getRaw("CS"),
|
864
|
+
xref,
|
865
|
+
resources,
|
866
|
+
pdfFunctionFactory,
|
867
|
+
localColorSpaceCache
|
868
|
+
});
|
869
|
+
|
842
870
|
this.cs = cs;
|
843
|
-
this.background = dict.has(
|
844
|
-
var fnObj = dict.
|
871
|
+
this.background = dict.has("Background") ? cs.getRgb(dict.get("Background"), 0) : null;
|
872
|
+
var fnObj = dict.getRaw("Function");
|
845
873
|
var fn = fnObj ? pdfFunctionFactory.createFromArray(fnObj) : null;
|
846
874
|
this.coords = [];
|
847
875
|
this.colors = [];
|
848
876
|
this.figures = [];
|
849
877
|
var decodeContext = {
|
850
|
-
bitsPerCoordinate: dict.get(
|
851
|
-
bitsPerComponent: dict.get(
|
852
|
-
bitsPerFlag: dict.get(
|
853
|
-
decode: dict.getArray(
|
878
|
+
bitsPerCoordinate: dict.get("BitsPerCoordinate"),
|
879
|
+
bitsPerComponent: dict.get("BitsPerComponent"),
|
880
|
+
bitsPerFlag: dict.get("BitsPerFlag"),
|
881
|
+
decode: dict.getArray("Decode"),
|
854
882
|
colorFn: fn,
|
855
883
|
colorSpace: cs,
|
856
884
|
numComps: fn ? 1 : cs.numComps
|
@@ -864,10 +892,10 @@ Shadings.Mesh = function MeshClosure() {
|
|
864
892
|
break;
|
865
893
|
|
866
894
|
case ShadingType.LATTICE_FORM_MESH:
|
867
|
-
var verticesPerRow = dict.get(
|
895
|
+
var verticesPerRow = dict.get("VerticesPerRow") | 0;
|
868
896
|
|
869
897
|
if (verticesPerRow < 2) {
|
870
|
-
throw new _util.FormatError(
|
898
|
+
throw new _util.FormatError("Invalid VerticesPerRow");
|
871
899
|
}
|
872
900
|
|
873
901
|
decodeType5Shading(this, reader, verticesPerRow);
|
@@ -884,7 +912,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
884
912
|
break;
|
885
913
|
|
886
914
|
default:
|
887
|
-
(0, _util.unreachable)(
|
915
|
+
(0, _util.unreachable)("Unsupported mesh type.");
|
888
916
|
break;
|
889
917
|
}
|
890
918
|
|
@@ -902,7 +930,7 @@ Shadings.Mesh = function MeshClosure() {
|
|
902
930
|
|
903
931
|
Mesh.prototype = {
|
904
932
|
getIR: function Mesh_getIR() {
|
905
|
-
return [
|
933
|
+
return ["Mesh", this.shadingType, this.coords, this.colors, this.figures, this.bounds, this.matrix, this.bbox, this.background];
|
906
934
|
}
|
907
935
|
};
|
908
936
|
return Mesh;
|
@@ -910,30 +938,30 @@ Shadings.Mesh = function MeshClosure() {
|
|
910
938
|
|
911
939
|
Shadings.Dummy = function DummyClosure() {
|
912
940
|
function Dummy() {
|
913
|
-
this.type =
|
941
|
+
this.type = "Pattern";
|
914
942
|
}
|
915
943
|
|
916
944
|
Dummy.prototype = {
|
917
945
|
getIR: function Dummy_getIR() {
|
918
|
-
return [
|
946
|
+
return ["Dummy"];
|
919
947
|
}
|
920
948
|
};
|
921
949
|
return Dummy;
|
922
950
|
}();
|
923
951
|
|
924
952
|
function getTilingPatternIR(operatorList, dict, args) {
|
925
|
-
|
953
|
+
const matrix = dict.getArray("Matrix");
|
926
954
|
|
927
|
-
|
955
|
+
const bbox = _util.Util.normalizeRect(dict.getArray("BBox"));
|
928
956
|
|
929
|
-
|
930
|
-
|
931
|
-
|
932
|
-
|
957
|
+
const xstep = dict.get("XStep");
|
958
|
+
const ystep = dict.get("YStep");
|
959
|
+
const paintType = dict.get("PaintType");
|
960
|
+
const tilingType = dict.get("TilingType");
|
933
961
|
|
934
962
|
if (bbox[2] - bbox[0] === 0 || bbox[3] - bbox[1] === 0) {
|
935
|
-
throw new _util.FormatError(
|
963
|
+
throw new _util.FormatError(`Invalid getTilingPatternIR /BBox array: [${bbox}].`);
|
936
964
|
}
|
937
965
|
|
938
|
-
return [
|
966
|
+
return ["TilingPattern", args, operatorList, matrix, bbox, xstep, ystep, paintType, tilingType];
|
939
967
|
}
|