pdfjs-dist 2.0.489 → 2.2.228
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pdfjs-dist might be problematic. Click here for more details.
- package/CODE_OF_CONDUCT.md +15 -0
- package/bower.json +1 -1
- package/build/pdf.js +18515 -11402
- package/build/pdf.js.map +1 -1
- package/build/pdf.min.js +1 -1
- package/build/pdf.worker.js +48266 -37137
- package/build/pdf.worker.js.map +1 -1
- package/build/pdf.worker.min.js +1 -1
- package/external/url/url-lib.js +627 -0
- package/image_decoders/pdf.image_decoders.js +11350 -0
- package/image_decoders/pdf.image_decoders.js.map +1 -0
- package/image_decoders/pdf.image_decoders.min.js +1 -0
- package/lib/core/annotation.js +587 -242
- package/lib/core/arithmetic_decoder.js +275 -245
- package/lib/core/bidi.js +65 -6
- package/lib/core/ccitt.js +173 -18
- package/lib/core/ccitt_stream.js +15 -6
- package/lib/core/cff_parser.js +433 -61
- package/lib/core/charsets.js +5 -4
- package/lib/core/chunked_stream.js +400 -152
- package/lib/core/cmap.js +326 -87
- package/lib/core/colorspace.js +874 -594
- package/lib/core/core_utils.js +147 -0
- package/lib/core/crypto.js +290 -45
- package/lib/core/document.js +560 -268
- package/lib/core/encodings.js +19 -10
- package/lib/core/evaluator.js +1005 -360
- package/lib/core/font_renderer.js +331 -97
- package/lib/core/fonts.js +812 -195
- package/lib/core/function.js +284 -71
- package/lib/core/glyphlist.js +4 -3
- package/lib/core/image.js +169 -62
- package/lib/core/image_utils.js +111 -0
- package/lib/core/jbig2.js +479 -66
- package/lib/core/jbig2_stream.js +19 -8
- package/lib/core/jpeg_stream.js +38 -13
- package/lib/core/jpg.js +253 -29
- package/lib/core/jpx.js +396 -6
- package/lib/core/jpx_stream.js +18 -6
- package/lib/core/metrics.js +15 -15
- package/lib/core/murmurhash3.js +56 -34
- package/lib/core/obj.js +1354 -488
- package/lib/core/operator_list.js +144 -31
- package/lib/core/parser.js +539 -191
- package/lib/core/pattern.js +148 -14
- package/lib/core/pdf_manager.js +323 -133
- package/lib/core/primitives.js +111 -24
- package/lib/core/ps_parser.js +134 -45
- package/lib/core/standard_fonts.js +17 -17
- package/lib/core/stream.js +313 -34
- package/lib/core/type1_parser.js +143 -13
- package/lib/core/unicode.js +32 -5
- package/lib/core/worker.js +217 -190
- package/lib/core/worker_stream.js +277 -0
- package/lib/display/annotation_layer.js +450 -133
- package/lib/display/api.js +1597 -784
- package/lib/display/api_compatibility.js +11 -13
- package/lib/display/canvas.js +360 -44
- package/lib/display/content_disposition.js +83 -32
- package/lib/display/display_utils.js +747 -0
- package/lib/display/fetch_stream.js +221 -90
- package/lib/display/font_loader.js +468 -236
- package/lib/display/metadata.js +38 -16
- package/lib/display/network.js +635 -428
- package/lib/display/network_utils.js +32 -19
- package/lib/display/node_stream.js +367 -175
- package/lib/display/pattern_helper.js +81 -31
- package/lib/display/svg.js +1235 -519
- package/lib/display/text_layer.js +153 -29
- package/lib/display/transport_stream.js +345 -94
- package/lib/display/webgl.js +64 -18
- package/lib/display/worker_options.js +5 -4
- package/lib/display/xml_parser.js +166 -53
- package/lib/examples/node/domstubs.js +60 -4
- package/lib/pdf.js +36 -14
- package/lib/pdf.worker.js +5 -3
- package/lib/shared/compatibility.js +158 -564
- package/lib/shared/global_scope.js +2 -2
- package/lib/shared/is_node.js +4 -4
- package/lib/shared/message_handler.js +521 -0
- package/lib/shared/streams_polyfill.js +21 -17
- package/lib/shared/url_polyfill.js +56 -0
- package/lib/shared/util.js +243 -710
- package/lib/test/unit/annotation_spec.js +870 -401
- package/lib/test/unit/api_spec.js +657 -345
- package/lib/test/unit/bidi_spec.js +7 -7
- package/lib/test/unit/cff_parser_spec.js +54 -11
- package/lib/test/unit/clitests_helper.js +10 -8
- package/lib/test/unit/cmap_spec.js +95 -41
- package/lib/test/unit/colorspace_spec.js +115 -63
- package/lib/test/unit/core_utils_spec.js +191 -0
- package/lib/test/unit/crypto_spec.js +17 -5
- package/lib/test/unit/custom_spec.js +43 -55
- package/lib/test/unit/display_svg_spec.js +34 -18
- package/lib/test/unit/display_utils_spec.js +273 -0
- package/lib/test/unit/document_spec.js +8 -13
- package/lib/test/unit/encodings_spec.js +25 -45
- package/lib/test/unit/evaluator_spec.js +38 -15
- package/lib/test/unit/fetch_stream_spec.js +109 -0
- package/lib/test/unit/function_spec.js +17 -5
- package/lib/test/unit/jasmine-boot.js +33 -20
- package/lib/test/unit/{util_stream_spec.js → message_handler_spec.js} +41 -69
- package/lib/test/unit/metadata_spec.js +71 -11
- package/lib/test/unit/murmurhash3_spec.js +3 -3
- package/lib/test/unit/network_spec.js +19 -54
- package/lib/test/unit/network_utils_spec.js +91 -14
- package/lib/test/unit/node_stream_spec.js +56 -32
- package/lib/test/unit/parser_spec.js +162 -71
- package/lib/test/unit/pdf_find_controller_spec.js +230 -0
- package/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/lib/test/unit/pdf_history_spec.js +21 -9
- package/lib/test/unit/primitives_spec.js +53 -20
- package/lib/test/unit/stream_spec.js +12 -4
- package/lib/test/unit/test_utils.js +273 -56
- package/lib/test/unit/testreporter.js +21 -3
- package/lib/test/unit/type1_parser_spec.js +8 -6
- package/lib/test/unit/ui_utils_spec.js +454 -16
- package/lib/test/unit/unicode_spec.js +18 -15
- package/lib/test/unit/util_spec.js +87 -128
- package/lib/web/annotation_layer_builder.js +39 -22
- package/lib/web/app.js +1290 -588
- package/lib/web/app_options.js +100 -62
- package/lib/web/base_viewer.js +511 -182
- package/lib/web/chromecom.js +261 -117
- package/lib/web/debugger.js +166 -22
- package/lib/web/download_manager.js +32 -13
- package/lib/web/firefox_print_service.js +20 -10
- package/lib/web/firefoxcom.js +315 -80
- package/lib/web/genericcom.js +89 -30
- package/lib/web/genericl10n.js +142 -30
- package/lib/web/grab_to_pan.js +28 -4
- package/lib/web/interfaces.js +170 -47
- package/lib/web/overlay_manager.js +235 -85
- package/lib/web/password_prompt.js +22 -14
- package/lib/web/pdf_attachment_viewer.js +38 -18
- package/lib/web/pdf_cursor_tools.js +39 -16
- package/lib/web/pdf_document_properties.js +255 -136
- package/lib/web/pdf_find_bar.js +84 -40
- package/lib/web/pdf_find_controller.js +495 -184
- package/lib/web/pdf_find_utils.js +111 -0
- package/lib/web/pdf_history.js +190 -53
- package/lib/web/pdf_link_service.js +138 -77
- package/lib/web/pdf_outline_viewer.js +122 -46
- package/lib/web/pdf_page_view.js +191 -67
- package/lib/web/pdf_presentation_mode.js +99 -34
- package/lib/web/pdf_print_service.js +61 -13
- package/lib/web/pdf_rendering_queue.js +28 -9
- package/lib/web/pdf_sidebar.js +141 -81
- package/lib/web/pdf_sidebar_resizer.js +42 -16
- package/lib/web/pdf_single_page_viewer.js +74 -66
- package/lib/web/pdf_thumbnail_view.js +104 -33
- package/lib/web/pdf_thumbnail_viewer.js +66 -26
- package/lib/web/pdf_viewer.component.js +112 -32
- package/lib/web/pdf_viewer.js +91 -52
- package/lib/web/preferences.js +284 -89
- package/lib/web/secondary_toolbar.js +165 -40
- package/lib/web/text_layer_builder.js +134 -59
- package/lib/web/toolbar.js +78 -43
- package/lib/web/ui_utils.js +462 -136
- package/lib/web/view_history.js +215 -67
- package/lib/web/viewer_compatibility.js +4 -13
- package/package.json +5 -4
- package/web/pdf_viewer.css +79 -11
- package/web/pdf_viewer.js +6107 -3748
- package/web/pdf_viewer.js.map +1 -1
- package/lib/display/dom_utils.js +0 -309
- package/lib/test/unit/dom_utils_spec.js +0 -89
- package/lib/test/unit/fonts_spec.js +0 -81
- package/lib/web/dom_events.js +0 -137
@@ -2,7 +2,7 @@
|
|
2
2
|
* @licstart The following is the entire license notice for the
|
3
3
|
* Javascript code in this page
|
4
4
|
*
|
5
|
-
* Copyright
|
5
|
+
* Copyright 2019 Mozilla Foundation
|
6
6
|
*
|
7
7
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
8
|
* you may not use this file except in compliance with the License.
|
@@ -19,14 +19,15 @@
|
|
19
19
|
* @licend The above is the entire license notice for the
|
20
20
|
* Javascript code in this page
|
21
21
|
*/
|
22
|
-
|
22
|
+
"use strict";
|
23
23
|
|
24
24
|
Object.defineProperty(exports, "__esModule", {
|
25
25
|
value: true
|
26
26
|
});
|
27
|
-
exports.
|
27
|
+
exports.getShadingPatternFromIR = getShadingPatternFromIR;
|
28
|
+
exports.TilingPattern = void 0;
|
28
29
|
|
29
|
-
var _util = require(
|
30
|
+
var _util = require("../shared/util");
|
30
31
|
|
31
32
|
var ShadingIRs = {};
|
32
33
|
ShadingIRs.RadialAxial = {
|
@@ -41,20 +42,24 @@ ShadingIRs.RadialAxial = {
|
|
41
42
|
type: 'Pattern',
|
42
43
|
getPattern: function RadialAxial_getPattern(ctx) {
|
43
44
|
var grad;
|
45
|
+
|
44
46
|
if (type === 'axial') {
|
45
47
|
grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
|
46
48
|
} else if (type === 'radial') {
|
47
49
|
grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
|
48
50
|
}
|
51
|
+
|
49
52
|
for (var i = 0, ii = colorStops.length; i < ii; ++i) {
|
50
53
|
var c = colorStops[i];
|
51
54
|
grad.addColorStop(c[0], c[1]);
|
52
55
|
}
|
56
|
+
|
53
57
|
return grad;
|
54
58
|
}
|
55
59
|
};
|
56
60
|
}
|
57
61
|
};
|
62
|
+
|
58
63
|
var createMeshCanvas = function createMeshCanvasClosure() {
|
59
64
|
function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {
|
60
65
|
var coords = context.coords,
|
@@ -62,6 +67,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
62
67
|
var bytes = data.data,
|
63
68
|
rowSize = data.width * 4;
|
64
69
|
var tmp;
|
70
|
+
|
65
71
|
if (coords[p1 + 1] > coords[p2 + 1]) {
|
66
72
|
tmp = p1;
|
67
73
|
p1 = p2;
|
@@ -70,6 +76,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
70
76
|
c1 = c2;
|
71
77
|
c2 = tmp;
|
72
78
|
}
|
79
|
+
|
73
80
|
if (coords[p2 + 1] > coords[p3 + 1]) {
|
74
81
|
tmp = p2;
|
75
82
|
p2 = p3;
|
@@ -78,6 +85,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
78
85
|
c2 = c3;
|
79
86
|
c3 = tmp;
|
80
87
|
}
|
88
|
+
|
81
89
|
if (coords[p1 + 1] > coords[p2 + 1]) {
|
82
90
|
tmp = p1;
|
83
91
|
p1 = p2;
|
@@ -86,15 +94,18 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
86
94
|
c1 = c2;
|
87
95
|
c2 = tmp;
|
88
96
|
}
|
97
|
+
|
89
98
|
var x1 = (coords[p1] + context.offsetX) * context.scaleX;
|
90
99
|
var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;
|
91
100
|
var x2 = (coords[p2] + context.offsetX) * context.scaleX;
|
92
101
|
var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;
|
93
102
|
var x3 = (coords[p3] + context.offsetX) * context.scaleX;
|
94
103
|
var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;
|
104
|
+
|
95
105
|
if (y1 >= y3) {
|
96
106
|
return;
|
97
107
|
}
|
108
|
+
|
98
109
|
var c1r = colors[c1],
|
99
110
|
c1g = colors[c1 + 1],
|
100
111
|
c1b = colors[c1 + 2];
|
@@ -109,6 +120,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
109
120
|
var xa, car, cag, cab;
|
110
121
|
var xb, cbr, cbg, cbb;
|
111
122
|
var k;
|
123
|
+
|
112
124
|
for (var y = minY; y <= maxY; y++) {
|
113
125
|
if (y < y2) {
|
114
126
|
k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);
|
@@ -123,6 +135,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
123
135
|
cag = c2g - (c2g - c3g) * k;
|
124
136
|
cab = c2b - (c2b - c3b) * k;
|
125
137
|
}
|
138
|
+
|
126
139
|
k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);
|
127
140
|
xb = x1 - (x1 - x3) * k;
|
128
141
|
cbr = c1r - (c1r - c3r) * k;
|
@@ -131,6 +144,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
131
144
|
var x1_ = Math.round(Math.min(xa, xb));
|
132
145
|
var x2_ = Math.round(Math.max(xa, xb));
|
133
146
|
var j = rowSize * y + x1_ * 4;
|
147
|
+
|
134
148
|
for (var x = x1_; x <= x2_; x++) {
|
135
149
|
k = (xa - x) / (xa - xb);
|
136
150
|
k = k < 0 ? 0 : k > 1 ? 1 : k;
|
@@ -141,32 +155,41 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
141
155
|
}
|
142
156
|
}
|
143
157
|
}
|
158
|
+
|
144
159
|
function drawFigure(data, figure, context) {
|
145
160
|
var ps = figure.coords;
|
146
161
|
var cs = figure.colors;
|
147
162
|
var i, ii;
|
163
|
+
|
148
164
|
switch (figure.type) {
|
149
165
|
case 'lattice':
|
150
166
|
var verticesPerRow = figure.verticesPerRow;
|
151
167
|
var rows = Math.floor(ps.length / verticesPerRow) - 1;
|
152
168
|
var cols = verticesPerRow - 1;
|
169
|
+
|
153
170
|
for (i = 0; i < rows; i++) {
|
154
171
|
var q = i * verticesPerRow;
|
172
|
+
|
155
173
|
for (var j = 0; j < cols; j++, q++) {
|
156
174
|
drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);
|
157
175
|
drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);
|
158
176
|
}
|
159
177
|
}
|
178
|
+
|
160
179
|
break;
|
180
|
+
|
161
181
|
case 'triangles':
|
162
182
|
for (i = 0, ii = ps.length; i < ii; i += 3) {
|
163
183
|
drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);
|
164
184
|
}
|
185
|
+
|
165
186
|
break;
|
187
|
+
|
166
188
|
default:
|
167
189
|
throw new Error('illegal figure');
|
168
190
|
}
|
169
191
|
}
|
192
|
+
|
170
193
|
function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {
|
171
194
|
var EXPECTED_SCALE = 1.1;
|
172
195
|
var MAX_PATTERN_SIZE = 3000;
|
@@ -190,6 +213,7 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
190
213
|
var paddedWidth = width + BORDER_SIZE * 2;
|
191
214
|
var paddedHeight = height + BORDER_SIZE * 2;
|
192
215
|
var canvas, tmpCanvas, i, ii;
|
216
|
+
|
193
217
|
if (webGLContext.isEnabled) {
|
194
218
|
canvas = webGLContext.drawFigures({
|
195
219
|
width: width,
|
@@ -205,8 +229,10 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
205
229
|
tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
|
206
230
|
var tmpCtx = tmpCanvas.context;
|
207
231
|
var data = tmpCtx.createImageData(width, height);
|
232
|
+
|
208
233
|
if (backgroundColor) {
|
209
234
|
var bytes = data.data;
|
235
|
+
|
210
236
|
for (i = 0, ii = bytes.length; i < ii; i += 4) {
|
211
237
|
bytes[i] = backgroundColor[0];
|
212
238
|
bytes[i + 1] = backgroundColor[1];
|
@@ -214,12 +240,15 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
214
240
|
bytes[i + 3] = 255;
|
215
241
|
}
|
216
242
|
}
|
243
|
+
|
217
244
|
for (i = 0; i < figures.length; i++) {
|
218
245
|
drawFigure(data, figures[i], context);
|
219
246
|
}
|
247
|
+
|
220
248
|
tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);
|
221
249
|
canvas = tmpCanvas.canvas;
|
222
250
|
}
|
251
|
+
|
223
252
|
return {
|
224
253
|
canvas: canvas,
|
225
254
|
offsetX: offsetX - BORDER_SIZE * scaleX,
|
@@ -228,8 +257,10 @@ var createMeshCanvas = function createMeshCanvasClosure() {
|
|
228
257
|
scaleY: scaleY
|
229
258
|
};
|
230
259
|
}
|
260
|
+
|
231
261
|
return createMeshCanvas;
|
232
262
|
}();
|
263
|
+
|
233
264
|
ShadingIRs.Mesh = {
|
234
265
|
fromIR: function Mesh_fromIR(raw) {
|
235
266
|
var coords = raw[2];
|
@@ -242,22 +273,29 @@ ShadingIRs.Mesh = {
|
|
242
273
|
type: 'Pattern',
|
243
274
|
getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
|
244
275
|
var scale;
|
276
|
+
|
245
277
|
if (shadingFill) {
|
246
278
|
scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
|
247
279
|
} else {
|
248
280
|
scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);
|
281
|
+
|
249
282
|
if (matrix) {
|
250
283
|
var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);
|
284
|
+
|
251
285
|
scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];
|
252
286
|
}
|
253
287
|
}
|
288
|
+
|
254
289
|
var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);
|
290
|
+
|
255
291
|
if (!shadingFill) {
|
256
292
|
ctx.setTransform.apply(ctx, owner.baseTransform);
|
293
|
+
|
257
294
|
if (matrix) {
|
258
295
|
ctx.transform.apply(ctx, matrix);
|
259
296
|
}
|
260
297
|
}
|
298
|
+
|
261
299
|
ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
|
262
300
|
ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);
|
263
301
|
return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');
|
@@ -275,19 +313,24 @@ ShadingIRs.Dummy = {
|
|
275
313
|
};
|
276
314
|
}
|
277
315
|
};
|
316
|
+
|
278
317
|
function getShadingPatternFromIR(raw) {
|
279
318
|
var shadingIR = ShadingIRs[raw[0]];
|
319
|
+
|
280
320
|
if (!shadingIR) {
|
281
|
-
throw new Error(
|
321
|
+
throw new Error("Unknown IR type: ".concat(raw[0]));
|
282
322
|
}
|
323
|
+
|
283
324
|
return shadingIR.fromIR(raw);
|
284
325
|
}
|
326
|
+
|
285
327
|
var TilingPattern = function TilingPatternClosure() {
|
286
328
|
var PaintType = {
|
287
329
|
COLORED: 1,
|
288
330
|
UNCOLORED: 2
|
289
331
|
};
|
290
332
|
var MAX_PATTERN_SIZE = 3000;
|
333
|
+
|
291
334
|
function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {
|
292
335
|
this.operatorList = IR[2];
|
293
336
|
this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];
|
@@ -302,6 +345,7 @@ var TilingPattern = function TilingPatternClosure() {
|
|
302
345
|
this.type = 'Pattern';
|
303
346
|
this.ctx = ctx;
|
304
347
|
}
|
348
|
+
|
305
349
|
TilingPattern.prototype = {
|
306
350
|
createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {
|
307
351
|
var operatorList = this.operatorList;
|
@@ -317,39 +361,42 @@ var TilingPattern = function TilingPatternClosure() {
|
|
317
361
|
y0 = bbox[1],
|
318
362
|
x1 = bbox[2],
|
319
363
|
y1 = bbox[3];
|
320
|
-
|
321
|
-
var botRight = [x0 + xstep, y0 + ystep];
|
322
|
-
var width = botRight[0] - topLeft[0];
|
323
|
-
var height = botRight[1] - topLeft[1];
|
364
|
+
|
324
365
|
var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);
|
366
|
+
|
325
367
|
var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);
|
368
|
+
|
326
369
|
var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];
|
327
|
-
|
328
|
-
|
329
|
-
var tmpCanvas = owner.cachedCanvases.getCanvas('pattern',
|
370
|
+
var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);
|
371
|
+
var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);
|
372
|
+
var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true);
|
330
373
|
var tmpCtx = tmpCanvas.context;
|
331
374
|
var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);
|
332
375
|
graphics.groupLevel = owner.groupLevel;
|
333
376
|
this.setFillAndStrokeStyleToContext(graphics, paintType, color);
|
334
|
-
|
335
|
-
|
336
|
-
var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];
|
337
|
-
graphics.transform.apply(graphics, tmpTranslate);
|
377
|
+
graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);
|
378
|
+
graphics.transform(1, 0, 0, 1, -x0, -y0);
|
338
379
|
this.clipBbox(graphics, bbox, x0, y0, x1, y1);
|
339
380
|
graphics.executeOperatorList(operatorList);
|
381
|
+
this.ctx.transform(1, 0, 0, 1, x0, y0);
|
382
|
+
this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);
|
340
383
|
return tmpCanvas.canvas;
|
341
384
|
},
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
385
|
+
getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {
|
386
|
+
step = Math.abs(step);
|
387
|
+
var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);
|
388
|
+
var size = Math.ceil(step * scale);
|
389
|
+
|
390
|
+
if (size >= maxSize) {
|
391
|
+
size = maxSize;
|
392
|
+
} else {
|
393
|
+
scale = size / step;
|
394
|
+
}
|
395
|
+
|
396
|
+
return {
|
397
|
+
scale: scale,
|
398
|
+
size: size
|
399
|
+
};
|
353
400
|
},
|
354
401
|
clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {
|
355
402
|
if (Array.isArray(bbox) && bbox.length === 4) {
|
@@ -363,6 +410,7 @@ var TilingPattern = function TilingPatternClosure() {
|
|
363
410
|
setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {
|
364
411
|
var context = graphics.ctx,
|
365
412
|
current = graphics.current;
|
413
|
+
|
366
414
|
switch (paintType) {
|
367
415
|
case PaintType.COLORED:
|
368
416
|
var ctx = this.ctx;
|
@@ -371,27 +419,29 @@ var TilingPattern = function TilingPatternClosure() {
|
|
371
419
|
current.fillColor = ctx.fillStyle;
|
372
420
|
current.strokeColor = ctx.strokeStyle;
|
373
421
|
break;
|
422
|
+
|
374
423
|
case PaintType.UNCOLORED:
|
375
424
|
var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);
|
425
|
+
|
376
426
|
context.fillStyle = cssColor;
|
377
427
|
context.strokeStyle = cssColor;
|
378
428
|
current.fillColor = cssColor;
|
379
429
|
current.strokeColor = cssColor;
|
380
430
|
break;
|
431
|
+
|
381
432
|
default:
|
382
|
-
throw new _util.FormatError(
|
433
|
+
throw new _util.FormatError("Unsupported paint type: ".concat(paintType));
|
383
434
|
}
|
384
435
|
},
|
385
436
|
getPattern: function TilingPattern_getPattern(ctx, owner) {
|
386
|
-
var temporaryPatternCanvas = this.createPatternCanvas(owner);
|
387
437
|
ctx = this.ctx;
|
388
438
|
ctx.setTransform.apply(ctx, this.baseTransform);
|
389
439
|
ctx.transform.apply(ctx, this.matrix);
|
390
|
-
this.
|
440
|
+
var temporaryPatternCanvas = this.createPatternCanvas(owner);
|
391
441
|
return ctx.createPattern(temporaryPatternCanvas, 'repeat');
|
392
442
|
}
|
393
443
|
};
|
394
444
|
return TilingPattern;
|
395
445
|
}();
|
396
|
-
|
446
|
+
|
397
447
|
exports.TilingPattern = TilingPattern;
|