From c79cb83d52eb9d9d8466a973519eb0baaa7c6e0a Mon Sep 17 00:00:00 2001 From: Chris Jones Date: Mon, 23 May 2011 21:22:56 +1200 Subject: [PATCH] reset current point on text state changes and remove redundant "cur" prefix --- pdf.js | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/pdf.js b/pdf.js index c3e110bd0..1755c7490 100644 --- a/pdf.js +++ b/pdf.js @@ -2032,8 +2032,8 @@ var CanvasExtraState = (function() { this.fontSize = 0.0; this.textMatrix = IDENTITY_MATRIX; // Current point (in user coordinates) - this.curX = 0.0; - this.curY = 0.0; + this.x = 0.0; + this.y = 0.0; // Start of text line (in text coordinates) this.lineX = 0.0; this.lineY = 0.0; @@ -2251,6 +2251,8 @@ var CanvasGraphics = (function() { // Text beginText: function() { this.current.textMatrix = IDENTITY_MATRIX; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; }, endText: function() { }, @@ -2262,23 +2264,30 @@ var CanvasGraphics = (function() { this.ctx.font = this.current.fontSize +'px '+ font.BaseFont; }, moveText: function (x, y) { - this.current.lineX += x; - this.current.lineY += y; - // TODO transform - this.current.curX = this.current.lineX; - this.current.curY = this.current.lineY; + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; }, setTextMatrix: function(a, b, c, d, e, f) { this.current.textMatrix = [ a, b, c, d, e, f ]; + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; }, showText: function(text) { + + + if (text == "Figur") { + console.log(" Tm: "+ this.current.textMatrix); + console.log(" cx/cy: "+ this.current.x +"/"+ this.current.y); + } + + this.ctx.save(); - this.ctx.translate(0, 2 * this.current.curY); + this.ctx.translate(0, 2 * this.current.y); this.ctx.scale(1, -1); this.ctx.transform.apply(this.ctx, this.current.textMatrix); - this.ctx.fillText(text, this.current.curX, this.current.curY); - this.current.curX += this.ctx.measureText(text).width; + this.ctx.fillText(text, this.current.x, this.current.y); + this.current.x += this.ctx.measureText(text).width; this.ctx.restore(); }, @@ -2286,7 +2295,7 @@ var CanvasGraphics = (function() { for (var i = 0; i < arr.length; ++i) { var e = arr[i]; if (IsNum(e)) { - this.current.curX -= e * 0.001 * this.current.fontSize; + this.current.x -= e * 0.001 * this.current.fontSize; } else if (IsString(e)) { this.showText(e); } else {