From 2aecbe874e8aca89ea14759ea41665f10eafb5fd Mon Sep 17 00:00:00 2001 From: Brendan Dahl Date: Mon, 22 Jul 2013 14:52:44 -0700 Subject: [PATCH] Paint patterns relative to content base transformation. --- src/canvas.js | 11 ++++++++++- src/pattern.js | 9 +++++---- test/pdfs/issue3458.pdf | Bin 0 -> 39226 bytes test/test_manifest.json | 7 +++++++ 4 files changed, 22 insertions(+), 5 deletions(-) create mode 100644 test/pdfs/issue3458.pdf diff --git a/src/canvas.js b/src/canvas.js index ef433ce8f..0b1bed490 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -407,6 +407,10 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { this.imageLayer = imageLayer; this.groupStack = []; this.processingType3 = null; + // Patterns are painted relative to the initial page/form transform, see pdf + // spec 8.7.2 NOTE 1. + this.baseTransform = null; + this.baseTransformStack = []; if (canvasCtx) { addContextCurrentTransform(canvasCtx); } @@ -509,6 +513,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { } var transform = viewport.transform; + this.baseTransform = transform.slice(); this.ctx.save(); this.ctx.transform.apply(this.ctx, transform); @@ -1318,7 +1323,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { color = base.getRgb(args, 0); } var pattern = new TilingPattern(IR, color, this.ctx, this.objs, - this.commonObjs); + this.commonObjs, this.baseTransform); } else if (IR[0] == 'RadialAxial' || IR[0] == 'Dummy') { var pattern = Pattern.shadingFromIR(IR); } else { @@ -1453,10 +1458,13 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { bbox) { this.save(); this.current.paintFormXObjectDepth++; + this.baseTransformStack.push(this.baseTransform); if (matrix && isArray(matrix) && 6 == matrix.length) this.transform.apply(this, matrix); + this.baseTransform = this.ctx.mozCurrentTransform; + if (bbox && isArray(bbox) && 4 == bbox.length) { var width = bbox[2] - bbox[0]; var height = bbox[3] - bbox[1]; @@ -1473,6 +1481,7 @@ var CanvasGraphics = (function CanvasGraphicsClosure() { // some pdf don't close all restores inside object // closing those for them } while (this.current.paintFormXObjectDepth >= depth); + this.baseTransform = this.baseTransformStack.pop(); }, beginGroup: function CanvasGraphics_beginGroup(group) { diff --git a/src/pattern.js b/src/pattern.js index af0489945..6f7db2722 100644 --- a/src/pattern.js +++ b/src/pattern.js @@ -271,7 +271,7 @@ var TilingPattern = (function TilingPatternClosure() { var MAX_PATTERN_SIZE = 8192; - function TilingPattern(IR, color, ctx, objs, commonObjs) { + function TilingPattern(IR, color, ctx, objs, commonObjs, baseTransform) { this.name = IR[1][0].name; this.operatorList = IR[2]; this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; @@ -283,7 +283,7 @@ var TilingPattern = (function TilingPatternClosure() { this.color = color; this.objs = objs; this.commonObjs = commonObjs; - this.curMatrix = ctx.mozCurrentTransform; + this.baseTransform = baseTransform; this.type = 'Pattern'; this.ctx = ctx; } @@ -328,7 +328,8 @@ var TilingPattern = (function TilingPatternClosure() { // Obtain scale from matrix and current transformation matrix. var matrixScale = Util.singularValueDecompose2dScale(this.matrix); - var curMatrixScale = Util.singularValueDecompose2dScale(this.curMatrix); + var curMatrixScale = Util.singularValueDecompose2dScale( + this.baseTransform); var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; @@ -412,7 +413,7 @@ var TilingPattern = (function TilingPatternClosure() { this.createPatternCanvas(temporaryPatternCanvas); var ctx = this.ctx; - ctx.setTransform.apply(ctx, this.curMatrix); + ctx.setTransform.apply(ctx, this.baseTransform); ctx.transform.apply(ctx, this.matrix); this.scaleToContext(); diff --git a/test/pdfs/issue3458.pdf b/test/pdfs/issue3458.pdf new file mode 100644 index 0000000000000000000000000000000000000000..86c68a812f03b6d561ea67d7be641ebedd442a14 GIT binary patch literal 39226 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 F`5z&D%uWCR literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 66bf4630f..298cb09ba 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -935,6 +935,13 @@ "type": "eq", "about": "Rotated transparency group with blend mode." }, + { "id": "issue3458.pdf", + "file": "pdfs/issue3458.pdf", + "md5": "dab8bd3ad1acfc8dc82a8381a3c8ff94", + "rounds": 1, + "type": "eq", + "about": "Pattern with current transform different than base transform." + }, { "id": "issue2462", "file": "pdfs/issue2462.pdf", "md5": "d4e3dddfdd35464c71cf0310bff29b42",