diff --git a/fonts.js b/fonts.js index 381d37c09..fbd9a0167 100644 --- 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) { diff --git a/worker/client.js b/worker/client.js index 41b8c1349..f932960e3 100644 --- a/worker/client.js +++ b/worker/client.js @@ -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(); }