]> git.parisson.com Git - pdf.js.git/commitdiff
Make all fonts render. Use encoding from FontWorker. Render canvas if id!=0 although...
authorJulian Viereck <julian.viereck@gmail.com>
Sun, 26 Jun 2011 18:58:22 +0000 (20:58 +0200)
committerJulian Viereck <julian.viereck@gmail.com>
Tue, 28 Jun 2011 06:06:40 +0000 (08:06 +0200)
Conflicts:

worker/pdf.js

fonts.js
worker/client.js

index 381d37c092d463c980318ccbc0e73cdb42c41091..fbd9a0167420f064e1f3f8ecdc1abc3becbbb7c6 100644 (file)
--- a/fonts.js
+++ b/fonts.js
@@ -64,15 +64,8 @@ var Fonts = {
       var unicode = encoding[charcode];
 
       // Check if the glyph has already been converted
-      // if (unicode instanceof Name)
-      try {
-        if (!IsNum(unicode))
-        // if ("name" in unicode)
+      if (!IsNum(unicode))
           unicode = encoding[unicode] = GlyphsUnicode[unicode.name];
-        
-      } catch(e) {
-        console.log("FAIL");
-      }
 
       // Handle surrogate pairs
       if (unicode > 0xFFFF) {
index 41b8c1349a1f3255f8f58b513a05c6705786dfc7..f932960e383c99c63958ecf1376573d249724d4d 100644 (file)
@@ -37,10 +37,18 @@ function FontWorker() {
 
 FontWorker.prototype = {
   actionHandler: {
+    "log": function(data) {
+      console.log.apply(console, data);
+    },
+    
     "fonts": function(data) {
       // console.log("got processed fonts from worker", Object.keys(data));
       for (name in data) {
-        var base64 = window.btoa(data[name]);
+        // Update the 
+        Fonts[name].properties = {
+          encoding: data[name].encoding
+        }
+        var base64 = window.btoa(data[name].str);
 
         // Add the @font-face rule to the document
         var url = "url(data:font/opentype;base64," + base64 + ");";
@@ -90,9 +98,12 @@ FontWorker.prototype = {
       // Store only the data on Fonts that is needed later on, such that we
       // hold track on as lease memory as possible.
       Fonts[font.name] = {
-        properties: {
-          encoding:  font.properties.encoding
-        },
+        // This is set later on the worker replay. For some fonts, the encoding
+        // is calculated during the conversion process happening on the worker
+        // and therefore is not available right now.
+        // properties: {
+        //   encoding:  font.properties.encoding
+        // },
         cache:      Object.create(null)
       };
 
@@ -348,8 +359,13 @@ function WorkerPDFDoc(canvas) {
         }.bind(this);
 
         if (this.waitingForFonts) {
-          console.log("want to render, but not all fonts are there", id);
-          this.waitingForFontsCallback.push(renderData);
+          if (id == 0) {
+            console.log("want to render, but not all fonts are there", id);
+            this.waitingForFontsCallback.push(renderData);
+          } else {
+            // console.log("assume canvas doesn't have fonts", id);
+            renderData();
+          }
         } else {
           renderData();
         }