]> git.parisson.com Git - pdf.js.git/commitdiff
avoid font lookup by id in showText
authorAndreas Gal <andreas.gal@gmail.com>
Fri, 8 Jul 2011 21:58:19 +0000 (14:58 -0700)
committerAndreas Gal <andreas.gal@gmail.com>
Fri, 8 Jul 2011 21:58:19 +0000 (14:58 -0700)
fonts.js
pdf.js

index 380a0ea3023fe04b9911cff23f694aabdffed405..1f1db3652e0040843f8a222b71e56c518b2f1716 100755 (executable)
--- a/fonts.js
+++ b/fonts.js
@@ -413,6 +413,7 @@ function getUnicodeRangeFor(value) {
 var Font = (function() {
   var constructor = function font_constructor(name, file, properties) {
     this.name = name;
+    this.textMatrix = properties.textMatrix || IDENTITY_MATRIX;
     this.encoding = properties.encoding;
 
     // If the font is to be ignored, register it like an already loaded font
diff --git a/pdf.js b/pdf.js
index eef6deed54fb36381065a9bffbd4a3a6fa4a2c04..1666ce65894253ac821a27d9762d1e37fbc73b6f 100644 (file)
--- a/pdf.js
+++ b/pdf.js
@@ -3925,24 +3925,24 @@ var CanvasGraphics = (function() {
     showText: function(text) {
       // TODO: apply charSpacing, wordSpacing, textHScale
 
-      this.ctx.save();
-      this.ctx.transform.apply(this.ctx, this.current.textMatrix);
-      this.ctx.scale(1, -1);
+      var ctx = this.ctx;
+      var current = this.current;
+
+      ctx.save();
+      ctx.transform.apply(ctx, current.textMatrix);
+      ctx.scale(1, -1);
 
       if (this.ctx.$showText) {
-        this.ctx.$showText(this.current.y, Fonts.charsToUnicode(text));
+        ctx.$showText(current.y, Fonts.charsToUnicode(text));
       } else {
         text = Fonts.charsToUnicode(text);
-        this.ctx.translate(this.current.x, -1 * this.current.y);
+        ctx.translate(this.current.x, -1 * this.current.y);
 
         var font = this.current.font;
-        if (font) {
-          var fontInfo = Fonts.lookupById(font.id);
-          if (fontInfo && fontInfo.properties.textMatrix)
-            this.ctx.transform.apply(this.ctx, fontInfo.properties.textMatrix);
-        }
-        this.ctx.fillText(text, 0, 0);
-        this.current.x += Fonts.measureText(text);
+        if (font)
+          ctx.transform.apply(ctx, font.textMatrix);
+        ctx.fillText(text, 0, 0);
+        current.x += Fonts.measureText(text);
       }
 
       this.ctx.restore();