From 6c5d2ac88bf986170e3627f7919e4fae444af44f Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Fri, 28 Oct 2011 12:16:17 -0400 Subject: [PATCH 01/68] progress --- web/viewer.css | 15 +++++++++++++++ web/viewer.js | 6 +++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/web/viewer.css b/web/viewer.css index 27ad0638a..52852d591 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -231,6 +231,21 @@ canvas { -webkit-box-shadow: 0px 2px 10px #ff0; } +.textLayer { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + color: #000; +} + +.textLayer > div { + color: transparent; + position: absolute; + line-height:1.3; +} + #viewer { margin: 44px 0px 0px; padding: 8px 0px; diff --git a/web/viewer.js b/web/viewer.js index 1ab2c555c..63215a6d8 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -475,6 +475,10 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, canvas.mozOpaque = true; div.appendChild(canvas); + var textDiv = document.createElement('div'); + textDiv.className = 'textLayer'; + div.appendChild(textDiv); + var scale = this.scale; canvas.width = pageWidth * scale; canvas.height = pageHeight * scale; @@ -487,7 +491,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats); + this.content.startRendering(ctx, this.updateStats, textDiv, scale); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); From e7d08e3a98cfbd978c1ddfb9e8af9396d311e603 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Fri, 28 Oct 2011 17:37:55 -0400 Subject: [PATCH 02/68] Selection working --- src/canvas.js | 118 ++++++++++++++++++++++++++++++++++++++++++------- src/core.js | 7 ++- web/viewer.css | 6 +++ web/viewer.js | 8 ++-- 4 files changed, 117 insertions(+), 22 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 70dd65e3d..d771fa15e 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -60,7 +60,7 @@ var CanvasGraphics = (function canvasGraphics() { // if we execute longer then `kExecutionTime`. var kExecutionTimeCheck = 500; - function constructor(canvasCtx, objs) { + function constructor(canvasCtx, objs, textLayer, textScale) { this.ctx = canvasCtx; this.current = new CanvasExtraState(); this.stateStack = []; @@ -69,6 +69,8 @@ var CanvasGraphics = (function canvasGraphics() { this.xobjs = null; this.ScratchCanvas = ScratchCanvas; this.objs = objs; + this.textLayer = textLayer; + this.textScale = textScale; } var LINE_CAP_STYLES = ['butt', 'round', 'square']; @@ -95,6 +97,7 @@ var CanvasGraphics = (function canvasGraphics() { break; } this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); + this.textDivs = []; }, executeIRQueue: function canvasGraphicsExecuteIRQueue(codeIR, @@ -150,6 +153,17 @@ var CanvasGraphics = (function canvasGraphics() { endDrawing: function canvasGraphicsEndDrawing() { this.ctx.restore(); + + // Text selection-specific + var textLayer = this.textLayer; + var textDivs = this.textDivs; + for (var i = 0, length = textDivs.length; i < length; ++i) { + if (textDivs[i].dataset.textLength>1) { // avoid div by zero + textLayer.appendChild(textDivs[i]); + // Adjust div width to match canvas text width + textDivs[i].style.letterSpacing = ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) + 'px'; + } + } }, // Graphics state @@ -414,6 +428,12 @@ var CanvasGraphics = (function canvasGraphics() { this.moveText(0, this.current.leading); }, showText: function canvasGraphicsShowText(text) { + function unicodeToChar(unicode) { + return (unicode >= 0x10000) ? + String.fromCharCode(0xD800 | ((unicode - 0x10000) >> 10), + 0xDC00 | (unicode & 0x3FF)) : String.fromCharCode(unicode); + }; + var ctx = this.ctx; var current = this.current; var font = current.font; @@ -423,6 +443,8 @@ var CanvasGraphics = (function canvasGraphics() { var wordSpacing = current.wordSpacing; var textHScale = current.textHScale; var glyphsLength = glyphs.length; + var text = { chars:'', width:0 }; + if (font.coded) { ctx.save(); ctx.transform.apply(ctx, current.textMatrix); @@ -446,11 +468,12 @@ var CanvasGraphics = (function canvasGraphics() { this.restore(); var transformed = Util.applyTransform([glyph.width, 0], fontMatrix); - var width = transformed[0] * fontSize + charSpacing; - - ctx.translate(width, 0); - current.x += width; + var charWidth = transformed[0] * fontSize + charSpacing; + ctx.translate(charWidth, 0); + current.x += charWidth; + text.chars += unicodeToChar(glyph.unicode); + text.width += charWidth; } ctx.restore(); } else { @@ -459,7 +482,6 @@ var CanvasGraphics = (function canvasGraphics() { ctx.scale(1, -1); ctx.translate(current.x, -1 * current.y); ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); var width = 0; @@ -471,36 +493,100 @@ var CanvasGraphics = (function canvasGraphics() { continue; } - var unicode = glyph.unicode; - var char = (unicode >= 0x10000) ? - String.fromCharCode(0xD800 | ((unicode - 0x10000) >> 10), - 0xDC00 | (unicode & 0x3FF)) : String.fromCharCode(unicode); - + var char = unicodeToChar(glyph.unicode); + var charWidth = glyph.width * fontSize * 0.001 + charSpacing; ctx.fillText(char, width, 0); - width += glyph.width * fontSize * 0.001 + charSpacing; + width += charWidth; + + text.chars += char; + text.width += charWidth; } current.x += width; - ctx.restore(); } + return text; }, - showSpacedText: function canvasGraphicsShowSpacedText(arr) { var ctx = this.ctx; var current = this.current; var fontSize = current.fontSize; var textHScale = current.textHScale; var arrLength = arr.length; + var textLayer = this.textLayer; + var font = current.font; + var text = {str:'', length:0, canvasWidth:0, spaceWidth:0, geom:{}}; + + // Text selection-specific + text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; + if (!text.spaceWidth>0) { + // Hack (space is sometimes not encoded) + text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; + } + + // Compute text.geom + // TODO: refactor the series of transformations below, and share it with showText() + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.scale(1, -1); + ctx.translate(current.x, -1 * current.y); + ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); + ctx.scale(1 / textHScale, 1); + var inv = ctx.mozCurrentTransform; + if (inv) { + var bl = Util.applyTransform([0, 0], inv); + var tr = Util.applyTransform([1, 1], inv); + text.geom.x = bl[0]; + text.geom.y = bl[1]; + text.geom.xFactor = tr[0] - bl[0]; + text.geom.yFactor = tr[1] - bl[1]; + } + ctx.restore(); + for (var i = 0; i < arrLength; ++i) { var e = arr[i]; if (isNum(e)) { - current.x -= e * 0.001 * fontSize * textHScale; + var spacingLength = -e * 0.001 * fontSize * textHScale; + current.x += spacingLength; + + // Text selection-specific + // Emulate arbitrary spacing via HTML spaces + text.canvasWidth += spacingLength; + if (e<0 && text.spaceWidth>0) { // avoid div by zero + var numFakeSpaces = Math.round(-e / text.spaceWidth); + for (var j = 0; j < numFakeSpaces; ++j) + text.str += ' '; + text.length += numFakeSpaces>0 ? 1 : 0; + } } else if (isString(e)) { - this.showText(e); + var shownText = this.showText(e); + + // Text selection-specific + if (shownText.chars === ' ') { + text.str += ' '; + } else { + text.str += shownText.chars; + } + text.canvasWidth += shownText.width; + text.length += e.length; } else { malformed('TJ array element ' + e + ' is not string or num'); } } + + if (textLayer) { + var div = document.createElement('div'); + var fontHeight = text.geom.yFactor * fontSize; + div.style.fontSize = fontHeight + 'px'; + // TODO: family should be '= font.loadedName', but some fonts don't + // have spacing info (cf. fonts.js > Font > fields > htmx) + div.style.fontFamily = 'serif'; + div.style.left = text.geom.x + 'px'; + div.style.top = (text.geom.y - fontHeight) + 'px'; + div.innerHTML = text.str; + div.dataset.canvasWidth = text.canvasWidth * text.geom.xFactor; + div.dataset.textLength = text.length; + this.textDivs.push(div); + } }, nextLineShowText: function canvasGraphicsNextLineShowText(text) { this.nextLine(); diff --git a/src/core.js b/src/core.js index 4b411cff5..7e7bb6ea8 100644 --- a/src/core.js +++ b/src/core.js @@ -157,7 +157,7 @@ var Page = (function pagePage() { IRQueue, fonts) { var self = this; this.IRQueue = IRQueue; - var gfx = new CanvasGraphics(this.ctx, this.objs); + var gfx = new CanvasGraphics(this.ctx, this.objs, this.textLayer, this.textScale); var startTime = Date.now(); var displayContinuation = function pageDisplayContinuation() { @@ -243,6 +243,7 @@ var Page = (function pagePage() { startIdx = gfx.executeIRQueue(IRQueue, startIdx, next); if (startIdx == length) { self.stats.render = Date.now(); + gfx.endDrawing(); if (callback) callback(); } } @@ -305,9 +306,11 @@ var Page = (function pagePage() { } return links; }, - startRendering: function(ctx, callback) { + startRendering: function(ctx, callback, textLayer, textScale) { this.ctx = ctx; this.callback = callback; + this.textLayer = textLayer; + this.textScale = textScale; this.startRenderingTime = Date.now(); this.pdf.startRendering(this); diff --git a/web/viewer.css b/web/viewer.css index 52852d591..19895ac27 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -246,6 +246,12 @@ canvas { line-height:1.3; } +::selection { background:rgba(0,0,255,0.3); } +::-moz-selection { background:rgba(0,0,255,0.3); } +/* TODO: file FF bug to support ::-moz-selection:window-inactive + so we can override the opaque grey background when the window is inactive; + see also http://css-tricks.com/9288-window-inactive-styling */ + #viewer { margin: 44px 0px 0px; padding: 8px 0px; diff --git a/web/viewer.js b/web/viewer.js index 63215a6d8..523b7dc56 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -475,9 +475,9 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, canvas.mozOpaque = true; div.appendChild(canvas); - var textDiv = document.createElement('div'); - textDiv.className = 'textLayer'; - div.appendChild(textDiv); + var textLayer = document.createElement('div'); + textLayer.className = 'textLayer'; + div.appendChild(textLayer); var scale = this.scale; canvas.width = pageWidth * scale; @@ -491,7 +491,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats, textDiv, scale); + this.content.startRendering(ctx, this.updateStats, textLayer, scale); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); From 98f3bab65c58fb4d1080cf57c1410209c9626502 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Mon, 31 Oct 2011 16:49:18 -0400 Subject: [PATCH 03/68] Lazy rendering --- src/canvas.js | 122 ++++++++++++++++++++++++++++++-------------------- src/core.js | 7 ++- web/viewer.js | 2 +- 3 files changed, 78 insertions(+), 53 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index d771fa15e..d5db79446 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -60,7 +60,7 @@ var CanvasGraphics = (function canvasGraphics() { // if we execute longer then `kExecutionTime`. var kExecutionTimeCheck = 500; - function constructor(canvasCtx, objs, textLayer, textScale) { + function constructor(canvasCtx, objs, textLayer) { this.ctx = canvasCtx; this.current = new CanvasExtraState(); this.stateStack = []; @@ -70,7 +70,6 @@ var CanvasGraphics = (function canvasGraphics() { this.ScratchCanvas = ScratchCanvas; this.objs = objs; this.textLayer = textLayer; - this.textScale = textScale; } var LINE_CAP_STYLES = ['butt', 'round', 'square']; @@ -98,6 +97,10 @@ var CanvasGraphics = (function canvasGraphics() { } this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); this.textDivs = []; + this.textLayerQueue = []; + // Prevent textLayerQueue to be rendered while rendering a new page + if (this.textLayerTimer) + clearTimeout(this.textLayerTimer); }, executeIRQueue: function canvasGraphicsExecuteIRQueue(codeIR, @@ -152,17 +155,37 @@ var CanvasGraphics = (function canvasGraphics() { }, endDrawing: function canvasGraphicsEndDrawing() { + var self = this; this.ctx.restore(); - // Text selection-specific - var textLayer = this.textLayer; - var textDivs = this.textDivs; - for (var i = 0, length = textDivs.length; i < length; ++i) { - if (textDivs[i].dataset.textLength>1) { // avoid div by zero - textLayer.appendChild(textDivs[i]); - // Adjust div width to match canvas text width - textDivs[i].style.letterSpacing = ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) + 'px'; + var textLayer = self.textLayer; + if (textLayer) { + var renderTextLayer = function canvasRenderTextLayer() { + var textDivs = self.textDivs; + for (var i = 0, length = textDivs.length; i < length; ++i) { + if (textDivs[i].dataset.textLength>1) { // avoid div by zero + textLayer.appendChild(textDivs[i]); + // Adjust div width (via letterSpacing) to match canvas text + // Due to the .offsetWidth calls, this is slow + textDivs[i].style.letterSpacing = + ((textDivs[i].dataset.canvasWidth + - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) + + 'px'; + } + } } + var textLayerQueue = self.textLayerQueue; + textLayerQueue.push(renderTextLayer); + + // Lazy textLayer rendering (to prevent UI hangs) + // Only render queue if activity has stopped, where "no activity" == + // "no beginDrawing() calls in the last N ms" + self.textLayerTimer = setTimeout(function renderTextLayerQueue(){ + // Render most recent (==most relevant) layers first + for (var i=textLayerQueue.length-1; i>=0; i--) { + textLayerQueue.pop().call(); + } + }, 500); } }, @@ -516,31 +539,32 @@ var CanvasGraphics = (function canvasGraphics() { var font = current.font; var text = {str:'', length:0, canvasWidth:0, spaceWidth:0, geom:{}}; - // Text selection-specific - text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; - if (!text.spaceWidth>0) { - // Hack (space is sometimes not encoded) - text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; - } + if (textLayer) { + text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; + if (!text.spaceWidth>0) { + // Hack (space is sometimes not encoded) + text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; + } - // Compute text.geom - // TODO: refactor the series of transformations below, and share it with showText() - ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); - var inv = ctx.mozCurrentTransform; - if (inv) { - var bl = Util.applyTransform([0, 0], inv); - var tr = Util.applyTransform([1, 1], inv); - text.geom.x = bl[0]; - text.geom.y = bl[1]; - text.geom.xFactor = tr[0] - bl[0]; - text.geom.yFactor = tr[1] - bl[1]; + // Compute text.geom + // TODO: refactor the series of transformations below, and share it with showText() + ctx.save(); + ctx.transform.apply(ctx, current.textMatrix); + ctx.scale(1, -1); + ctx.translate(current.x, -1 * current.y); + ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); + ctx.scale(1 / textHScale, 1); + var inv = ctx.mozCurrentTransform; + if (inv) { + var bl = Util.applyTransform([0, 0], inv); + var tr = Util.applyTransform([1, 1], inv); + text.geom.x = bl[0]; + text.geom.y = bl[1]; + text.geom.xFactor = tr[0] - bl[0]; + text.geom.yFactor = tr[1] - bl[1]; + } + ctx.restore(); } - ctx.restore(); for (var i = 0; i < arrLength; ++i) { var e = arr[i]; @@ -548,26 +572,28 @@ var CanvasGraphics = (function canvasGraphics() { var spacingLength = -e * 0.001 * fontSize * textHScale; current.x += spacingLength; - // Text selection-specific - // Emulate arbitrary spacing via HTML spaces - text.canvasWidth += spacingLength; - if (e<0 && text.spaceWidth>0) { // avoid div by zero - var numFakeSpaces = Math.round(-e / text.spaceWidth); - for (var j = 0; j < numFakeSpaces; ++j) - text.str += ' '; - text.length += numFakeSpaces>0 ? 1 : 0; + if (textLayer) { + // Emulate precise spacing via HTML spaces + text.canvasWidth += spacingLength; + if (e<0 && text.spaceWidth>0) { // avoid div by zero + var numFakeSpaces = Math.round(-e / text.spaceWidth); + for (var j = 0; j < numFakeSpaces; ++j) + text.str += ' '; + text.length += numFakeSpaces>0 ? 1 : 0; + } } } else if (isString(e)) { var shownText = this.showText(e); - // Text selection-specific - if (shownText.chars === ' ') { - text.str += ' '; - } else { - text.str += shownText.chars; + if (textLayer) { + if (shownText.chars === ' ') { + text.str += ' '; + } else { + text.str += shownText.chars; + } + text.canvasWidth += shownText.width; + text.length += e.length; } - text.canvasWidth += shownText.width; - text.length += e.length; } else { malformed('TJ array element ' + e + ' is not string or num'); } diff --git a/src/core.js b/src/core.js index 7e7bb6ea8..4313959a8 100644 --- a/src/core.js +++ b/src/core.js @@ -7,7 +7,7 @@ var globalScope = (typeof window === 'undefined') ? this : window; var ERRORS = 0, WARNINGS = 1, TODOS = 5; var verbosity = WARNINGS; -var useWorker = false; +var useWorker = true; // The global PDFJS object exposes the API // In production, it will be declared outside a global wrapper @@ -157,7 +157,7 @@ var Page = (function pagePage() { IRQueue, fonts) { var self = this; this.IRQueue = IRQueue; - var gfx = new CanvasGraphics(this.ctx, this.objs, this.textLayer, this.textScale); + var gfx = new CanvasGraphics(this.ctx, this.objs, this.textLayer); var startTime = Date.now(); var displayContinuation = function pageDisplayContinuation() { @@ -306,11 +306,10 @@ var Page = (function pagePage() { } return links; }, - startRendering: function(ctx, callback, textLayer, textScale) { + startRendering: function(ctx, callback, textLayer) { this.ctx = ctx; this.callback = callback; this.textLayer = textLayer; - this.textScale = textScale; this.startRenderingTime = Date.now(); this.pdf.startRendering(this); diff --git a/web/viewer.js b/web/viewer.js index 523b7dc56..d8a59e651 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -491,7 +491,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats, textLayer, scale); + this.content.startRendering(ctx, this.updateStats, textLayer); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); From c74d7b8777d9b963bbb7b56dac957db5b51647db Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Mon, 31 Oct 2011 16:49:49 -0400 Subject: [PATCH 04/68] Workers off! --- src/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/core.js b/src/core.js index 4313959a8..ab2509016 100644 --- a/src/core.js +++ b/src/core.js @@ -7,7 +7,7 @@ var globalScope = (typeof window === 'undefined') ? this : window; var ERRORS = 0, WARNINGS = 1, TODOS = 5; var verbosity = WARNINGS; -var useWorker = true; +var useWorker = false; // The global PDFJS object exposes the API // In production, it will be declared outside a global wrapper From 9ddc40c3d7b82f3059e3864c887f05c649b575ca Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Wed, 2 Nov 2011 12:22:39 -0400 Subject: [PATCH 05/68] Nit --- src/canvas.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 1ed1ab76d..4edcb3096 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -106,7 +106,7 @@ var CanvasGraphics = (function canvasGraphics() { this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); this.textDivs = []; this.textLayerQueue = []; - // Prevent textLayerQueue to be rendered while rendering a new page + // Prevent textLayerQueue from being rendered while rendering a new page if (this.textLayerTimer) clearTimeout(this.textLayerTimer); }, @@ -166,7 +166,7 @@ var CanvasGraphics = (function canvasGraphics() { var self = this; this.ctx.restore(); - var textLayer = self.textLayer; + var textLayer = this.textLayer; if (textLayer) { var renderTextLayer = function canvasRenderTextLayer() { var textDivs = self.textDivs; @@ -557,10 +557,10 @@ var CanvasGraphics = (function canvasGraphics() { ctx.translate(current.x, -1 * current.y); ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); ctx.scale(1 / textHScale, 1); - var inv = ctx.mozCurrentTransform; - if (inv) { - var bl = Util.applyTransform([0, 0], inv); - var tr = Util.applyTransform([1, 1], inv); + var ctxMatrix = ctx.mozCurrentTransform; + if (ctxMatrix) { + var bl = Util.applyTransform([0, 0], ctxMatrix); + var tr = Util.applyTransform([1, 1], ctxMatrix); text.geom.x = bl[0]; text.geom.y = bl[1]; text.geom.xFactor = tr[0] - bl[0]; @@ -601,7 +601,7 @@ var CanvasGraphics = (function canvasGraphics() { malformed('TJ array element ' + e + ' is not string or num'); } } - + if (textLayer) { var div = document.createElement('div'); var fontHeight = text.geom.yFactor * fontSize; From 9bb2b881b0bd0984b28cab66ef4fcdc084c633c3 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 8 Nov 2011 08:48:10 -0800 Subject: [PATCH 06/68] Adds cmyk jpg support. Treats the cmyk jpg as a regular stream. --- Makefile | 1 + examples/helloworld/index.html | 1 + src/core.js | 2 +- src/evaluator.js | 2 +- src/image.js | 12 +++++----- src/stream.js | 44 +++++++++++++++++++++++++++------- test/test_slave.html | 1 + web/viewer.html | 2 +- 8 files changed, 47 insertions(+), 18 deletions(-) diff --git a/Makefile b/Makefile index 3e385b175..2b566cbbf 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,7 @@ PDF_JS_FILES = \ pattern.js \ stream.js \ worker.js \ + ../external/jpgjs/jpg.js \ $(NULL) # make server diff --git a/examples/helloworld/index.html b/examples/helloworld/index.html index a48e3705b..a2485d918 100644 --- a/examples/helloworld/index.html +++ b/examples/helloworld/index.html @@ -22,6 +22,7 @@ <script type="text/javascript" src="../../src/pattern.js"></script> <script type="text/javascript" src="../../src/stream.js"></script> <script type="text/javascript" src="../../src/worker.js"></script> + <script type="text/javascript" src="../../external/jpgjs/jpg.js"></script> <script type="text/javascript"> // Specify the main script used to create a new PDF.JS web worker. diff --git a/src/core.js b/src/core.js index 5e97763ab..6ff34dfbe 100644 --- a/src/core.js +++ b/src/core.js @@ -546,7 +546,7 @@ var PDFDoc = (function pdfDoc() { switch (type) { case 'JpegStream': var IR = data[2]; - new JpegImage(id, IR, this.objs); + new JpegImageLoader(id, IR, this.objs); break; case 'Font': var name = data[2]; diff --git a/src/evaluator.js b/src/evaluator.js index 064288c6f..3b33519d8 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -179,7 +179,7 @@ var PartialEvaluator = (function partialEvaluator() { var w = dict.get('Width', 'W'); var h = dict.get('Height', 'H'); - if (image instanceof JpegStream) { + if (image instanceof JpegStream && image.isNative) { var objId = 'img_' + uniquePrefix + (++self.objIdCounter); handler.send('obj', [objId, 'JpegStream', image.getIR()]); diff --git a/src/image.js b/src/image.js index 71aa0f113..17ef7b06d 100644 --- a/src/image.js +++ b/src/image.js @@ -229,12 +229,12 @@ var PDFImage = (function pdfImage() { return constructor; })(); -var JpegImage = (function jpegImage() { - function JpegImage(objId, imageData, objs) { +var JpegImageLoader = (function jpegImage() { + function JpegImageLoader(objId, imageData, objs) { var src = 'data:image/jpeg;base64,' + window.btoa(imageData); var img = new Image(); - img.onload = (function jpegImageOnload() { + img.onload = (function jpegImageLoaderOnload() { this.loaded = true; objs.resolve(objId, this); @@ -246,12 +246,12 @@ var JpegImage = (function jpegImage() { this.domImage = img; } - JpegImage.prototype = { - getImage: function jpegImageGetImage() { + JpegImageLoader.prototype = { + getImage: function jpegImageLoaderGetImage() { return this.domImage; } }; - return JpegImage; + return JpegImageLoader; })(); diff --git a/src/stream.js b/src/stream.js index 73b096f1e..de07e1387 100644 --- a/src/stream.js +++ b/src/stream.js @@ -793,20 +793,46 @@ var JpegStream = (function jpegStream() { // TODO: per poppler, some images may have 'junk' before that // need to be removed this.dict = dict; + this.isNative = true; - if (isAdobeImage(bytes)) - bytes = fixAdobeImage(bytes); + if (isAdobeImage(bytes)) { + // when bug 674619 land, let's check if browser can do + // normal cmyk and then we won't have to the following + var cs = dict.get('ColorSpace'); + if (isName(cs) && cs.name === 'DeviceCMYK') { + this.isNative = false; + this.bytes = bytes; + } else { + bytes = fixAdobeImage(bytes); + this.src = bytesToString(bytes); + } + } else { + this.src = bytesToString(bytes); + } - this.src = bytesToString(bytes); + DecodeStream.call(this); } - constructor.prototype = { - getIR: function jpegStreamGetIR() { - return this.src; - }, - getChar: function jpegStreamGetChar() { + constructor.prototype = Object.create(DecodeStream.prototype); + + constructor.prototype.ensureBuffer = function jpegStreamEnsureBuffer(req) { + if (this.bufferLength) + return; + var jpegImage = new JpegImage(); + jpegImage.parse(this.bytes); + var width = jpegImage.width; + var height = jpegImage.height; + var dataLength = width * height * 4; + var data = new Uint8Array(dataLength); + jpegImage.getData(data, width, height); + this.buffer = data; + this.bufferLength = data.length; + }; + constructor.prototype.getIR = function jpegStreamGetIR() { + return this.src; + }; + constructor.prototype.getChar = function jpegStreamGetChar() { error('internal error: getChar is not valid on JpegStream'); - } }; return constructor; diff --git a/test/test_slave.html b/test/test_slave.html index 91852d5a5..166251af9 100644 --- a/test/test_slave.html +++ b/test/test_slave.html @@ -21,6 +21,7 @@ <script type="text/javascript" src="/src/pattern.js"></script> <script type="text/javascript" src="/src/stream.js"></script> <script type="text/javascript" src="/src/worker.js"></script> + <script type="text/javascript" src="/external/jpgjs/jpg.js"></script> <script type="text/javascript" src="driver.js"></script> <script type="text/javascript"> diff --git a/web/viewer.html b/web/viewer.html index a72503eee..e441a9847 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -25,7 +25,7 @@ <script type="text/javascript" src="../src/pattern.js"></script> <!-- PDFJSSCRIPT_REMOVE --> <script type="text/javascript" src="../src/stream.js"></script> <!-- PDFJSSCRIPT_REMOVE --> <script type="text/javascript" src="../src/worker.js"></script> <!-- PDFJSSCRIPT_REMOVE --> - + <script type="text/javascript" src="../external/jpgjs/jpg.js"></script> <!-- PDFJSSCRIPT_REMOVE --> <script type="text/javascript">PDFJS.workerSrc = '../src/worker_loader.js';</script> <!-- PDFJSSCRIPT_REMOVE --> <script type="text/javascript" src="viewer.js"></script> From 1869888838666b73c6956b046b60bfac7c9968ec Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 8 Nov 2011 08:50:01 -0800 Subject: [PATCH 07/68] Comment on the new flag. --- src/stream.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/stream.js b/src/stream.js index de07e1387..d8a681a88 100644 --- a/src/stream.js +++ b/src/stream.js @@ -793,6 +793,8 @@ var JpegStream = (function jpegStream() { // TODO: per poppler, some images may have 'junk' before that // need to be removed this.dict = dict; + + // Flag indicating wether the image can be natively loaded. this.isNative = true; if (isAdobeImage(bytes)) { From 9ebec03ddc11e8de6e36c059b1bd71e34f24688c Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Tue, 8 Nov 2011 15:27:03 -0500 Subject: [PATCH 08/68] Implemented selection for showText() --- src/canvas.js | 153 ++++++++++++++++++++++++++++++-------------------- src/fonts.js | 8 ++- 2 files changed, 98 insertions(+), 63 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 470bbef94..05f74f24e 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -453,7 +453,58 @@ var CanvasGraphics = (function canvasGraphics() { nextLine: function canvasGraphicsNextLine() { this.moveText(0, this.current.leading); }, - showText: function canvasGraphicsShowText(text) { + applyTextTransforms: function canvasApplyTransforms() { + var ctx = this.ctx; + var current = this.current; + var textHScale = current.textHScale; + var font = current.font; + + ctx.transform.apply(ctx, current.textMatrix); + ctx.scale(1, -1); + ctx.translate(current.x, -1 * current.y); + ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); + ctx.scale(1 / textHScale, 1); + }, + getTextGeometry: function canvasGetTextGeometry() { + var geom = {}; + var ctx = this.ctx; + var font = this.current.font; + var ctxMatrix = ctx.mozCurrentTransform; + if (ctxMatrix) { + var bl = Util.applyTransform([0, 0], ctxMatrix); + var tr = Util.applyTransform([1, 1], ctxMatrix); + geom.x = bl[0]; + geom.y = bl[1]; + geom.hScale = tr[0] - bl[0]; + geom.vScale = tr[1] - bl[1]; + } + var spaceGlyph = font.charsToGlyphs(' ', true); + // Hack (sometimes space is not encoded) + if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) + spaceGlyph = font.charsToGlyphs('i', true); + // Fallback + if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) + spaceGlyph = [ {width:0} ]; + geom.spaceWidth = spaceGlyph[0].width; + return geom; + }, + pushTextDivs: function canvasGraphicsPushTextDivs(text) { + var div = document.createElement('div'); + var fontSize = this.current.fontSize; + var fontHeight = text.geom.vScale * fontSize; + + div.style.fontSize = fontHeight + 'px'; + // TODO: family should be '= font.loadedName', but some fonts don't + // have spacing info (cf. fonts.js > Font > fields > htmx) + div.style.fontFamily = 'serif'; + div.style.left = text.geom.x + 'px'; + div.style.top = (text.geom.y - fontHeight) + 'px'; + div.innerHTML = text.str; + div.dataset.canvasWidth = text.canvasWidth * text.geom.hScale; + div.dataset.textLength = text.length; + this.textDivs.push(div); + }, + showText: function canvasGraphicsShowText(str, skipTextSelection) { function unicodeToChar(unicode) { return (unicode >= 0x10000) ? String.fromCharCode(0xD800 | ((unicode - 0x10000) >> 10), @@ -463,14 +514,24 @@ var CanvasGraphics = (function canvasGraphics() { var ctx = this.ctx; var current = this.current; var font = current.font; - var glyphs = font.charsToGlyphs(text); + var glyphs = font.charsToGlyphs(str); var fontSize = current.fontSize; var charSpacing = current.charSpacing; var wordSpacing = current.wordSpacing; var textHScale = current.textHScale; var glyphsLength = glyphs.length; - var text = { chars:'', width:0 }; + var textLayer = this.textLayer; + var text = { str:'', length:0, canvasWidth:0, geom:{}}; + var textSelection = textLayer && !skipTextSelection ? true : false; + + if (textSelection) { + ctx.save(); + this.applyTextTransforms(); + text.geom = this.getTextGeometry(); + ctx.restore(); + } + // Type3 fonts - each glyph is a "mini-PDF" if (font.coded) { ctx.save(); ctx.transform.apply(ctx, current.textMatrix); @@ -498,17 +559,14 @@ var CanvasGraphics = (function canvasGraphics() { ctx.translate(charWidth, 0); current.x += charWidth; - text.chars += unicodeToChar(glyph.unicode); - text.width += charWidth; + text.str += unicodeToChar(glyph.unicode); + text.canvasWidth += charWidth; + text.length++; } ctx.restore(); } else { ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); + this.applyTextTransforms(); var width = 0; for (var i = 0; i < glyphsLength; ++i) { @@ -524,12 +582,18 @@ var CanvasGraphics = (function canvasGraphics() { ctx.fillText(char, width, 0); width += charWidth; - text.chars += char; - text.width += charWidth; + text.str += char; + text.canvasWidth += charWidth; + text.length++; } + current.x += width; ctx.restore(); } + + if (textSelection) + this.pushTextDivs(text); + return text; }, showSpacedText: function canvasGraphicsShowSpacedText(arr) { @@ -540,32 +604,13 @@ var CanvasGraphics = (function canvasGraphics() { var arrLength = arr.length; var textLayer = this.textLayer; var font = current.font; - var text = {str:'', length:0, canvasWidth:0, spaceWidth:0, geom:{}}; + var text = {str:'', length:0, canvasWidth:0, geom:{}}; + var textSelection = textLayer ? true : false; - if (textLayer) { - text.spaceWidth = this.current.font.charsToGlyphs(' ')[0].width; - if (!text.spaceWidth>0) { - // Hack (space is sometimes not encoded) - text.spaceWidth = this.current.font.charsToGlyphs('i')[0].width; - } - - // Compute text.geom - // TODO: refactor the series of transformations below, and share it with showText() + if (textSelection) { ctx.save(); - ctx.transform.apply(ctx, current.textMatrix); - ctx.scale(1, -1); - ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); - ctx.scale(1 / textHScale, 1); - var ctxMatrix = ctx.mozCurrentTransform; - if (ctxMatrix) { - var bl = Util.applyTransform([0, 0], ctxMatrix); - var tr = Util.applyTransform([1, 1], ctxMatrix); - text.geom.x = bl[0]; - text.geom.y = bl[1]; - text.geom.xFactor = tr[0] - bl[0]; - text.geom.yFactor = tr[1] - bl[1]; - } + this.applyTextTransforms(); + text.geom = this.getTextGeometry(); ctx.restore(); } @@ -575,47 +620,35 @@ var CanvasGraphics = (function canvasGraphics() { var spacingLength = -e * 0.001 * fontSize * textHScale; current.x += spacingLength; - if (textLayer) { + if (textSelection) { // Emulate precise spacing via HTML spaces text.canvasWidth += spacingLength; - if (e<0 && text.spaceWidth>0) { // avoid div by zero - var numFakeSpaces = Math.round(-e / text.spaceWidth); + if (e<0 && text.geom.spaceWidth>0) { // avoid div by zero + var numFakeSpaces = Math.round(-e / text.geom.spaceWidth); for (var j = 0; j < numFakeSpaces; ++j) text.str += ' '; text.length += numFakeSpaces>0 ? 1 : 0; } } } else if (isString(e)) { - var shownText = this.showText(e); + var shownText = this.showText(e, true); - if (textLayer) { - if (shownText.chars === ' ') { - text.str += ' '; + if (textSelection) { + if (shownText.str === ' ') { + text.str += ' '; } else { - text.str += shownText.chars; + text.str += shownText.str; } - text.canvasWidth += shownText.width; + text.canvasWidth += shownText.canvasWidth; text.length += e.length; } } else { malformed('TJ array element ' + e + ' is not string or num'); } } - - if (textLayer) { - var div = document.createElement('div'); - var fontHeight = text.geom.yFactor * fontSize; - div.style.fontSize = fontHeight + 'px'; - // TODO: family should be '= font.loadedName', but some fonts don't - // have spacing info (cf. fonts.js > Font > fields > htmx) - div.style.fontFamily = 'serif'; - div.style.left = text.geom.x + 'px'; - div.style.top = (text.geom.y - fontHeight) + 'px'; - div.innerHTML = text.str; - div.dataset.canvasWidth = text.canvasWidth * text.geom.xFactor; - div.dataset.textLength = text.length; - this.textDivs.push(div); - } + + if (textSelection) + this.pushTextDivs(text); }, nextLineShowText: function canvasGraphicsNextLineShowText(text) { this.nextLine(); diff --git a/src/fonts.js b/src/fonts.js index ca02bb020..9462ac88e 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -1797,7 +1797,7 @@ var Font = (function Font() { return rule; }, - charsToGlyphs: function fonts_chars2Glyphs(chars) { + charsToGlyphs: function fonts_chars2Glyphs(chars, suppressWarnings) { var charsCache = this.charsCache; var glyphs; @@ -1830,7 +1830,8 @@ var Font = (function Font() { var charcode = int16([chars.charCodeAt(i++), chars.charCodeAt(i)]); var glyph = encoding[charcode]; if ('undefined' == typeof(glyph)) { - warn('Unencoded charcode ' + charcode); + if (!suppressWarnings) + warn('Unencoded charcode ' + charcode); glyph = { unicode: charcode, width: this.defaultWidth @@ -1847,7 +1848,8 @@ var Font = (function Font() { var charcode = chars.charCodeAt(i); var glyph = encoding[charcode]; if ('undefined' == typeof(glyph)) { - warn('Unencoded charcode ' + charcode); + if (!suppressWarnings) + warn('Unencoded charcode ' + charcode); glyph = { unicode: charcode, width: this.defaultWidth From 686f275830ba749d02f04e41c1954d0d0427bff5 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Tue, 8 Nov 2011 16:05:11 -0500 Subject: [PATCH 09/68] Fix font and spaces --- src/canvas.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 05f74f24e..83d9c34d1 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -494,9 +494,7 @@ var CanvasGraphics = (function canvasGraphics() { var fontHeight = text.geom.vScale * fontSize; div.style.fontSize = fontHeight + 'px'; - // TODO: family should be '= font.loadedName', but some fonts don't - // have spacing info (cf. fonts.js > Font > fields > htmx) - div.style.fontFamily = 'serif'; + div.style.fontFamily = this.current.font.loadedName || 'serif'; div.style.left = text.geom.x + 'px'; div.style.top = (text.geom.y - fontHeight) + 'px'; div.innerHTML = text.str; @@ -560,8 +558,8 @@ var CanvasGraphics = (function canvasGraphics() { current.x += charWidth; text.str += unicodeToChar(glyph.unicode); - text.canvasWidth += charWidth; text.length++; + text.canvasWidth += charWidth; } ctx.restore(); } else { @@ -582,9 +580,9 @@ var CanvasGraphics = (function canvasGraphics() { ctx.fillText(char, width, 0); width += charWidth; - text.str += char; - text.canvasWidth += charWidth; + text.str += char === ' ' ? ' ' : char; text.length++; + text.canvasWidth += charWidth; } current.x += width; From 6fec709011c6570b72ced48e003692fa989ef2dd Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Tue, 8 Nov 2011 16:14:23 -0500 Subject: [PATCH 10/68] Adding 1040.pdf --- test/pdfs/.gitignore | 1 + test/pdfs/1040.pdf | Bin 0 -> 299340 bytes test/test_manifest.json | 7 +++++++ 3 files changed, 8 insertions(+) create mode 100644 test/pdfs/1040.pdf diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 443cb155a..dce433acf 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -14,4 +14,5 @@ !sizes.pdf !close-path-bug.pdf !alphatrans.pdf +!1040.pdf diff --git a/test/pdfs/1040.pdf b/test/pdfs/1040.pdf new file mode 100644 index 0000000000000000000000000000000000000000..12b9a66429417553b31b1bc57ea254e44cfc3a9d GIT binary patch literal 299340 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 JPX{#a{{ekhub=<` literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 8085506a2..0d6e61b7a 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -268,5 +268,12 @@ "link": false, "rounds": 1, "type": "eq" + }, + { "id": "1040", + "file": "pdfs/1040.pdf", + "md5": "7323b50c6d28d959b8b4b92c469b2469", + "link": false, + "rounds": 1, + "type": "eq" } ] From 8d52a1e92a450f5b43049b3f1527bad8aaf79bfe Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 8 Nov 2011 13:53:56 -0800 Subject: [PATCH 11/68] Add another way to detect cmyk images. --- src/parser.js | 2 +- src/stream.js | 28 ++++++++++++++++++++++++---- src/worker_loader.js | 3 ++- 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/parser.js b/src/parser.js index a740615ed..93a3f21b5 100644 --- a/src/parser.js +++ b/src/parser.js @@ -236,7 +236,7 @@ var Parser = (function parserParser() { return new LZWStream(stream, earlyChange); } else if (name == 'DCTDecode' || name == 'DCT') { var bytes = stream.getBytes(length); - return new JpegStream(bytes, stream.dict); + return new JpegStream(bytes, stream.dict, this.xref); } else if (name == 'ASCII85Decode' || name == 'A85') { return new Ascii85Stream(stream); } else if (name == 'ASCIIHexDecode' || name == 'AHx') { diff --git a/src/stream.js b/src/stream.js index d8a681a88..7634e50bb 100644 --- a/src/stream.js +++ b/src/stream.js @@ -776,6 +776,25 @@ var JpegStream = (function jpegStream() { return false; } + function isCmykAdobe(bytes) { + var maxBytesScanned = Math.max(bytes.length - 16, 1024); + // Looking for APP14, 'Adobe' + for (var i = 0; i < maxBytesScanned; ++i) { + if (bytes[i] == 0xFF && bytes[i + 1] == 0xEE && + bytes[i + 2] == 0x00 && bytes[i + 3] == 0x0E && + bytes[i + 4] == 0x41 && bytes[i + 5] == 0x64 && + bytes[i + 6] == 0x6F && bytes[i + 7] == 0x62 && + bytes[i + 8] == 0x65 && bytes[i + 9] == 0 && + bytes[i + 15] == 2 ) { + return true; + } + // scanning until frame tag + if (bytes[i] == 0xFF && bytes[i + 1] == 0xC0) + break; + } + return false; + } + function fixAdobeImage(bytes) { // Inserting 'EMBED' marker after JPEG signature var embedMarker = new Uint8Array([0xFF, 0xEC, 0, 8, 0x45, 0x4D, 0x42, 0x45, @@ -789,19 +808,20 @@ var JpegStream = (function jpegStream() { return newBytes; } - function constructor(bytes, dict) { + function constructor(bytes, dict, xref) { // TODO: per poppler, some images may have 'junk' before that // need to be removed this.dict = dict; - + // Flag indicating wether the image can be natively loaded. this.isNative = true; if (isAdobeImage(bytes)) { // when bug 674619 land, let's check if browser can do // normal cmyk and then we won't have to the following - var cs = dict.get('ColorSpace'); + var cs = xref.fetchIfRef(dict.get('ColorSpace')); if (isName(cs) && cs.name === 'DeviceCMYK') { + //if (isCmykAdobe(bytes)) { this.isNative = false; this.bytes = bytes; } else { @@ -826,7 +846,7 @@ var JpegStream = (function jpegStream() { var height = jpegImage.height; var dataLength = width * height * 4; var data = new Uint8Array(dataLength); - jpegImage.getData(data, width, height); + jpegImage.getData(data, width, height, true); this.buffer = data; this.bufferLength = data.length; }; diff --git a/src/worker_loader.js b/src/worker_loader.js index cb0a91071..7141fa3e3 100644 --- a/src/worker_loader.js +++ b/src/worker_loader.js @@ -40,7 +40,8 @@ function onMessageLoader(evt) { 'parser.js', 'pattern.js', 'stream.js', - 'worker.js' + 'worker.js', + '../external/jpgjs/jpg.js' ]; // Load all the files. From 493805d9521ad064d099bbbb9ba5128611674c71 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 8 Nov 2011 14:00:39 -0800 Subject: [PATCH 12/68] Remove the alternative way to do CMYK check. Checking the colorspace seems sufficient. --- src/stream.js | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/src/stream.js b/src/stream.js index 7634e50bb..ce69e96aa 100644 --- a/src/stream.js +++ b/src/stream.js @@ -776,25 +776,6 @@ var JpegStream = (function jpegStream() { return false; } - function isCmykAdobe(bytes) { - var maxBytesScanned = Math.max(bytes.length - 16, 1024); - // Looking for APP14, 'Adobe' - for (var i = 0; i < maxBytesScanned; ++i) { - if (bytes[i] == 0xFF && bytes[i + 1] == 0xEE && - bytes[i + 2] == 0x00 && bytes[i + 3] == 0x0E && - bytes[i + 4] == 0x41 && bytes[i + 5] == 0x64 && - bytes[i + 6] == 0x6F && bytes[i + 7] == 0x62 && - bytes[i + 8] == 0x65 && bytes[i + 9] == 0 && - bytes[i + 15] == 2 ) { - return true; - } - // scanning until frame tag - if (bytes[i] == 0xFF && bytes[i + 1] == 0xC0) - break; - } - return false; - } - function fixAdobeImage(bytes) { // Inserting 'EMBED' marker after JPEG signature var embedMarker = new Uint8Array([0xFF, 0xEC, 0, 8, 0x45, 0x4D, 0x42, 0x45, @@ -821,7 +802,6 @@ var JpegStream = (function jpegStream() { // normal cmyk and then we won't have to the following var cs = xref.fetchIfRef(dict.get('ColorSpace')); if (isName(cs) && cs.name === 'DeviceCMYK') { - //if (isCmykAdobe(bytes)) { this.isNative = false; this.bytes = bytes; } else { From 8c182cb72428465b94e569e56f7029a37ca38200 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Tue, 8 Nov 2011 17:27:02 -0500 Subject: [PATCH 13/68] Default font fallback is same as setFont()'s --- src/canvas.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/canvas.js b/src/canvas.js index 83d9c34d1..590af469c 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -494,7 +494,7 @@ var CanvasGraphics = (function canvasGraphics() { var fontHeight = text.geom.vScale * fontSize; div.style.fontSize = fontHeight + 'px'; - div.style.fontFamily = this.current.font.loadedName || 'serif'; + div.style.fontFamily = this.current.font.loadedName || 'sans-serif'; div.style.left = text.geom.x + 'px'; div.style.top = (text.geom.y - fontHeight) + 'px'; div.innerHTML = text.str; From 073af783070e15863ab688954055d098e4cd8e9c Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 9 Nov 2011 09:29:33 -0800 Subject: [PATCH 14/68] Handle device gray and pass in the color transform option. --- src/stream.js | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/stream.js b/src/stream.js index ce69e96aa..65e122ad0 100644 --- a/src/stream.js +++ b/src/stream.js @@ -797,16 +797,21 @@ var JpegStream = (function jpegStream() { // Flag indicating wether the image can be natively loaded. this.isNative = true; + this.colorTransform = -1; + if (isAdobeImage(bytes)) { // when bug 674619 land, let's check if browser can do // normal cmyk and then we won't have to the following var cs = xref.fetchIfRef(dict.get('ColorSpace')); - if (isName(cs) && cs.name === 'DeviceCMYK') { - this.isNative = false; - this.bytes = bytes; - } else { + + // DeviceRGB and DeviceGray are the only Adobe images that work natively + if (isName(cs) && (cs.name === 'DeviceRGB' || cs.name === 'DeviceGray')) { bytes = fixAdobeImage(bytes); this.src = bytesToString(bytes); + } else { + this.colorTransform = dict.get('ColorTransform'); + this.isNative = false; + this.bytes = bytes; } } else { this.src = bytesToString(bytes); @@ -820,7 +825,7 @@ var JpegStream = (function jpegStream() { constructor.prototype.ensureBuffer = function jpegStreamEnsureBuffer(req) { if (this.bufferLength) return; - var jpegImage = new JpegImage(); + var jpegImage = new JpegImage(this.colorTransform); jpegImage.parse(this.bytes); var width = jpegImage.width; var height = jpegImage.height; From 22e531b1f2c48dbdc4f78ab28df181c4d5e8e0e5 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 9 Nov 2011 09:36:57 -0800 Subject: [PATCH 15/68] Adding the jpgjs as submodule. --- .gitmodules | 3 +++ external/jpgjs | 1 + 2 files changed, 4 insertions(+) create mode 100644 .gitmodules create mode 160000 external/jpgjs diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..5a852cd3f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "external/jpgjs"] + path = external/jpgjs + url = git@github.com:brendandahl/jpgjs.git diff --git a/external/jpgjs b/external/jpgjs new file mode 160000 index 000000000..592bec146 --- /dev/null +++ b/external/jpgjs @@ -0,0 +1 @@ +Subproject commit 592bec14658593fe90df1309926a38177889042e From 3d662cf08a559c8a074bbe8440fe3074d413f1a2 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 9 Nov 2011 09:39:55 -0800 Subject: [PATCH 16/68] Add the cmyk jpeg test file. --- test/pdfs/.gitignore | 2 +- test/pdfs/cmykjpeg.pdf | Bin 0 -> 141727 bytes test/test_manifest.json | 7 +++++++ 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 test/pdfs/cmykjpeg.pdf diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 443cb155a..854612f83 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -14,4 +14,4 @@ !sizes.pdf !close-path-bug.pdf !alphatrans.pdf - +!cmykjpeg.pdf diff --git a/test/pdfs/cmykjpeg.pdf b/test/pdfs/cmykjpeg.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2f35ef763824b72d78054d53974eecabd87d5981 GIT binary patch literal 141727 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	D8?>TF{ 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%0Ds{6}h0| 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 Yv3n($egX*<awev^h+)GLk}VPc0hN*O;{X5v literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 8085506a2..a6f2dc72a 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -268,5 +268,12 @@ "link": false, "rounds": 1, "type": "eq" + }, + { "id": "cmykjpeg", + "file": "pdfs/cmykjpeg.pdf", + "md5": "8307472972ba962d86d2f60d2ced9a97", + "link": false, + "rounds": 1, + "type": "eq" } ] From b872a08f4fab9e36e4aad24e025a278178010f5c Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 9 Nov 2011 09:50:40 -0800 Subject: [PATCH 17/68] Data is now created by jpg.js since we don't know the size. --- external/jpgjs | 2 +- src/stream.js | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/external/jpgjs b/external/jpgjs index 592bec146..0d69fa811 160000 --- a/external/jpgjs +++ b/external/jpgjs @@ -1 +1 @@ -Subproject commit 592bec14658593fe90df1309926a38177889042e +Subproject commit 0d69fa8117fd72c58d85f8b0536d7eebd7b96c47 diff --git a/src/stream.js b/src/stream.js index 65e122ad0..69f792b58 100644 --- a/src/stream.js +++ b/src/stream.js @@ -829,9 +829,7 @@ var JpegStream = (function jpegStream() { jpegImage.parse(this.bytes); var width = jpegImage.width; var height = jpegImage.height; - var dataLength = width * height * 4; - var data = new Uint8Array(dataLength); - jpegImage.getData(data, width, height, true); + var data = jpegImage.getData(width, height); this.buffer = data; this.bufferLength = data.length; }; From baf395ab16dabca43d977162534b35694ab762fc Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Wed, 9 Nov 2011 13:53:27 -0500 Subject: [PATCH 18/68] Removing 1040... (duplicate) --- test/pdfs/.gitignore | 1 - test/pdfs/1040.pdf | Bin 299340 -> 0 bytes test/test_manifest.json | 7 ------- 3 files changed, 8 deletions(-) delete mode 100644 test/pdfs/1040.pdf diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index dce433acf..443cb155a 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -14,5 +14,4 @@ !sizes.pdf !close-path-bug.pdf !alphatrans.pdf -!1040.pdf diff --git a/test/pdfs/1040.pdf b/test/pdfs/1040.pdf deleted file mode 100644 index 12b9a66429417553b31b1bc57ea254e44cfc3a9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 299340 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 JPX{#a{{ekhub=<` diff --git a/test/test_manifest.json b/test/test_manifest.json index 0d6e61b7a..8085506a2 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -268,12 +268,5 @@ "link": false, "rounds": 1, "type": "eq" - }, - { "id": "1040", - "file": "pdfs/1040.pdf", - "md5": "7323b50c6d28d959b8b4b92c469b2469", - "link": false, - "rounds": 1, - "type": "eq" } ] From ceda6aada8b90d58a17c5d132ddd4885aecc6e62 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 9 Nov 2011 16:38:55 -0800 Subject: [PATCH 19/68] Update readme to init the submodule. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index deb925601..be342060d 100644 --- a/README.md +++ b/README.md @@ -45,6 +45,8 @@ To get a local copy of the current code, clone it using git: $ git clone git://github.com/mozilla/pdf.js.git pdfjs $ cd pdfjs + $ git submodule init + $ git submodule update Next, you need to start a local web server as some browsers don't allow opening PDF files for a file:// url: From b1ae23772fb3369b52c8ace087d270ced87c88d8 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Mon, 14 Nov 2011 15:32:52 -0500 Subject: [PATCH 20/68] No suppressWarnings in Yury's encoding patch --- src/canvas.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index bf3bad4c6..d80bc80b2 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -478,10 +478,10 @@ var CanvasGraphics = (function canvasGraphics() { geom.hScale = tr[0] - bl[0]; geom.vScale = tr[1] - bl[1]; } - var spaceGlyph = font.charsToGlyphs(' ', true); + var spaceGlyph = font.charsToGlyphs(' '); // Hack (sometimes space is not encoded) if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) - spaceGlyph = font.charsToGlyphs('i', true); + spaceGlyph = font.charsToGlyphs('i'); // Fallback if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) spaceGlyph = [ {width:0} ]; From 87d13cf803a1366f4838d7f6ae05d3713aefb806 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 15 Nov 2011 15:05:31 -0800 Subject: [PATCH 21/68] Remove submodule. --- .gitmodules | 3 --- external/jpgjs | 1 - 2 files changed, 4 deletions(-) delete mode 100644 .gitmodules delete mode 160000 external/jpgjs diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 5a852cd3f..000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "external/jpgjs"] - path = external/jpgjs - url = git@github.com:brendandahl/jpgjs.git diff --git a/external/jpgjs b/external/jpgjs deleted file mode 160000 index 0d69fa811..000000000 --- a/external/jpgjs +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0d69fa8117fd72c58d85f8b0536d7eebd7b96c47 From 9e8d0795793b9c4edd85f95eec2fd5ef27fdcb2a Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 15 Nov 2011 15:08:13 -0800 Subject: [PATCH 22/68] Adding jpg.js back as a regular file. --- external/jpgjs/jpg.js | 722 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 722 insertions(+) create mode 100644 external/jpgjs/jpg.js diff --git a/external/jpgjs/jpg.js b/external/jpgjs/jpg.js new file mode 100644 index 000000000..6ae443c41 --- /dev/null +++ b/external/jpgjs/jpg.js @@ -0,0 +1,722 @@ +/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- / +/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */ + +// - The JPEG specification can be found in the ITU CCITT Recommendation T.81 +// (www.w3.org/Graphics/JPEG/itu-t81.pdf) +// - The JFIF specification can be found in the JPEG File Interchange Format +// (www.w3.org/Graphics/JPEG/jfif3.pdf) +// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters +// in PostScript Level 2, Technical Note #5116 +// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf) + +var JpegImage = (function jpegImage() { + "use strict"; + + function constructor(colorTransform) { + this.colorTransform = typeof colorTransform !== 'undefined' ? colorTransform : -1; + } + + var iDCTTables = (function initDCTTables() { + var cosTables = [], i, j; + for (i = 0; i < 8; i++) { + cosTables.push(new Float32Array(8)); + for (j = 0; j < 8; j++) + cosTables[i][j] = Math.cos((2 * i + 1) * j * Math.PI / 16) * + (j > 0 ? 1 : 1/Math.sqrt(2)); + } + + var zzTransform = new Int32Array([ + 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, + 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, + 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, + 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63]); + + var x, y, u, v; + var tables = []; + for (y = 0; y < 8; y++) { + var cosTable_y = cosTables[y]; + for (x = 0; x < 8; x++) { + var cosTable_x = cosTables[x]; + var table = new Float32Array(64); + i = 0; + for (v = 0; v < 8; v++) { + for (u = 0; u < 8; u++) + table[zzTransform[i++]] = cosTable_x[u] * cosTable_y[v]; + } + tables.push(table); + } + } + return tables; + })(); + + function buildHuffmanTable(codeLengths, values) { + var k = 0, code = [], i, j, length = 16; + while (length > 0 && !codeLengths[length - 1]) + length--; + code.push({children: [], index: 0}); + var p = code[0], q; + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); + } + p.index++; + code.push(p); + while (code.length <= i) { + code.push(q = {children: [], index: 0}); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i + 1 < length) { + // p here points to last code + code.push(q = {children: [], index: 0}); + p.children[p.index] = q.children; + p = q; + } + } + return code[0].children; + } + + function decodeScan(data, offset, + frame, components, resetInterval, + spectralStart, spectralEnd, + successivePrev, successive) { + var precision = frame.precision; + var samplesPerLine = frame.samplesPerLine; + var scanLines = frame.scanLines; + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + var maxH = frame.maxH, maxV = frame.maxV; + + var startOffset = offset, bitsData = 0, bitsCount = 0; + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return (bitsData >> bitsCount) & 1; + } + bitsData = data[offset++]; + if (bitsData == 0xFF) { + var nextByte = data[offset++]; + if (nextByte) { + throw "unexpected marker: " + ((bitsData << 8) | nextByte).toString(16); + } + // unstuff 0 + } + bitsCount = 7; + return bitsData >>> 7; + } + function decodeHuffman(tree) { + var node = tree, bit; + while ((bit = readBit()) !== null) { + node = node[bit]; + if (typeof node === 'number') + return node; + if (typeof node !== 'object') + throw "invalid huffman sequence"; + } + return null; + } + function receive(length) { + var n = 0; + while (length > 0) { + var bit = readBit(); + if (bit === null) return; + n = (n << 1) | bit; + length--; + } + return n; + } + function receiveAndExtend(length) { + var n = receive(length); + if (n >= 1 << (length - 1)) + return n; + return n + (-1 << length) + 1; + } + function decodeBaseline(component, zz) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + zz[0]= (component.pred += diff); + var k = 1; + while (k < 64) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) + break; + k += 16; + continue; + } + k += r; + zz[k] = receiveAndExtend(s); + k++; + } + } + function decodeDCFirst(component, zz) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive); + zz[0] = (component.pred += diff); + } + function decodeDCSuccessive(component, zz) { + zz[0] |= readBit() << successive; + } + var eobrun = 0; + function decodeACFirst(component, zz) { + if (eobrun > 0) { + eobrun--; + return; + } + var k = spectralStart, e = spectralEnd; + while (k <= e) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k += 16; + continue; + } + k += r; + zz[k] = receiveAndExtend(s) * (1 << successive); + k++; + } + } + var successiveACState = 0, successiveACNextValue; + function decodeACSuccessive(component, zz) { + var k = spectralStart, e = spectralEnd, r = 0; + while (k <= e) { + switch (successiveACState) { + case 0: // initial state + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) + throw "invalid ACn encoding"; + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: // skipping r zero items + case 2: + if (zz[k]) + zz[k] += (readBit() << successive); + else { + r--; + if (r === 0) + successiveACState = successiveACState == 2 ? 3 : 0; + } + break; + case 3: // set value for a zero item + if (zz[k]) + zz[k] += (readBit() << successive); + else { + zz[k] = successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: // eob + if (zz[k]) + zz[k] += (readBit() << successive); + break; + } + k++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) + successiveACState = 0; + } + } + function decodeMcu(component, decode, mcu, row, col) { + var mcuRow = (mcu / mcusPerLine) | 0; + var mcuCol = mcu % mcusPerLine; + var blockRow = mcuRow * component.v + row; + var blockCol = mcuCol * component.h + col; + decode(component, component.blocks[blockRow][blockCol]); + } + function decodeBlock(component, decode, mcu) { + var blockRow = (mcu / component.blocksPerLine) | 0; + var blockCol = mcu % component.blocksPerLine; + decode(component, component.blocks[blockRow][blockCol]); + } + + var componentsLength = components.length; + var component, i, j, k, n; + var decodeFn; + if (progressive) { + if (spectralStart === 0) + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + else + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } else { + decodeFn = decodeBaseline; + } + + var mcu = 0, marker; + var mcuExpected; + if (componentsLength == 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; + } + if (!resetInterval) resetInterval = mcuExpected; + + var h, v; + while (mcu < mcuExpected) { + // reset interval stuff + for (i = 0; i < componentsLength; i++) + components[i].pred = 0; + eobrun = 0; + + if (componentsLength == 1) { + component = components[0]; + for (n = 0; n < resetInterval; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < resetInterval; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + + // find marker + bitsCount = 0; + marker = (data[offset] << 8) | data[offset + 1]; + if (marker <= 0xFF00) { + throw "marker was not found"; + } + + if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx + offset += 2; + } + else + break; + } + + return offset - startOffset; + } + + function buildComponentData(frame, component) { + var lines = []; + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var samplesPerLine = blocksPerLine << 3; + + function quantizeAndInverse(zz) { + var qt = component.quantizationTable; + var precisionShift = frame.precision - 8; + + var R = new Int32Array(64); + for (i = 0; i < 64; i++) + R[i] = zz[i] * qt[i]; + + var r = new Uint8Array(64), i, j; + for (i = 0; i < 64; i++) { + var sum = 0; + var table = iDCTTables[i]; + for (j = 0; j < 64; j++) + sum += table[j] * R[j]; + // TODO loosing precision? + var sample = 128 + ((sum / 4) >> precisionShift); + // clamping + r[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample; + } + return r; + } + + var i, j; + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + var scanLine = blockRow << 3; + for (i = 0; i < 8; i++) + lines.push(new Uint8Array(samplesPerLine)); + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var r = quantizeAndInverse(component.blocks[blockRow][blockCol]); + + var offset = 0, sample = blockCol << 3; + for (j = 0; j < 8; j++) { + var line = lines[scanLine + j]; + for (i = 0; i < 8; i++) + line[sample + i] = r[offset++]; + } + } + } + return lines; + } + + constructor.prototype = { + load: function load(path) { + var xhr = new XMLHttpRequest(); + xhr.open("GET", path, true); + xhr.responseType = "arraybuffer"; + xhr.onload = (function() { + // TODO catch parse error + var data = new Uint8Array(xhr.response || xhr.mozResponseArrayBuffer); + this.parse(data); + if (this.onload) + this.onload(); + }).bind(this); + xhr.send(null); + }, + parse: function parse(data) { + var offset = 0, length = data.length; + function readUint16() { + var value = (data[offset] << 8) | data[offset + 1]; + offset += 2; + return value; + } + function readDataBlock() { + var length = readUint16(); + var array = data.subarray(offset, offset + length - 2); + offset += array.length; + return array; + } + function prepareComponents(frame) { + var maxH = 0, maxV = 0; + var component, componentId; + for (componentId in frame.components) { + if (frame.components.hasOwnProperty(componentId)) { + component = frame.components[componentId]; + if (maxH < component.h) maxH = component.h; + if (maxV < component.v) maxV = component.v; + } + } + var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / maxH); + var mcusPerColumn = Math.ceil(frame.scanLines / 8 / maxV); + for (componentId in frame.components) { + if (frame.components.hasOwnProperty(componentId)) { + component = frame.components[componentId]; + var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * component.h / maxH); + var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * component.v / maxV); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + var blocks = []; + for (var i = 0; i < blocksPerColumnForMcu; i++) { + var row = []; + for (var j = 0; j < blocksPerLineForMcu; j++) + row.push(new Int32Array(64)); + blocks.push(row); + } + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + component.blocks = blocks; + } + } + frame.maxH = maxH; + frame.maxV = maxV; + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; + } + var jfif = null; + var adobe = null; + var pixels = null; + var frame, resetInterval; + var quantizationTables = [], frames = []; + var huffmanTablesAC = [], huffmanTablesDC = []; + var fileMarker = readUint16(); + if (fileMarker != 0xFFD8) { // SOI (Start of Image) + throw "SOI not found"; + } + + fileMarker = readUint16(); + while (fileMarker != 0xFFD9) { // EOI (End of image) + var i, j, l; + switch(fileMarker) { + case 0xFFE0: // APP0 (Application Specific) + case 0xFFE1: // APP1 + case 0xFFE2: // APP2 + case 0xFFE3: // APP3 + case 0xFFE4: // APP4 + case 0xFFE5: // APP5 + case 0xFFE6: // APP6 + case 0xFFE7: // APP7 + case 0xFFE8: // APP8 + case 0xFFE9: // APP9 + case 0xFFEA: // APP10 + case 0xFFEB: // APP11 + case 0xFFEC: // APP12 + case 0xFFED: // APP13 + case 0xFFEE: // APP14 + case 0xFFEF: // APP15 + case 0xFFFE: // COM (Comment) + var appData = readDataBlock(); + + if (fileMarker === 0xFFE0) { + if (appData[0] === 0x4A && appData[1] === 0x46 && appData[2] === 0x49 && + appData[3] === 0x46 && appData[4] === 0) { // 'JFIF\x00' + jfif = { + version: { major: appData[5], minor: appData[6] }, + densityUnits: appData[7], + xDensity: (appData[8] << 8) | appData[9], + yDensity: (appData[10] << 8) | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + 3 * appData[12] * appData[13]) + }; + } + } + // TODO APP1 - Exif + if (fileMarker === 0xFFEE) { + if (appData[0] === 0x41 && appData[1] === 0x64 && appData[2] === 0x6F && + appData[3] === 0x62 && appData[4] === 0x65 && appData[5] === 0) { // 'Adobe\x00' + adobe = { + version: appData[6], + flags0: (appData[7] << 8) | appData[8], + flags1: (appData[9] << 8) | appData[10], + transformCode: appData[11] + }; + } + } + break; + + case 0xFFDB: // DQT (Define Quantization Tables) + var quantizationTableCount = Math.floor((readUint16() - 2) / 65); + for (i = 0; i < quantizationTableCount; i++) { + var quantizationTableSpec = data[offset++]; + var tableData = new Int32Array(64); + if ((quantizationTableSpec >> 4) === 0) { // 8 bit values + for (j = 0; j < 64; j++) + tableData[j] = data[offset++]; + } else if ((quantizationTableSpec >> 4) === 1) { //16 bit + tableData[j] = readUint16(); + } else + throw "DQT: invalid table spec"; + quantizationTables[quantizationTableSpec & 15] = tableData; + } + break; + + case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT) + case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT) + readUint16(); // skip data length + frame = {}; + frame.progressive = (fileMarker === 0xFFC2); + frame.precision = data[offset++]; + frame.scanLines = readUint16(); + frame.samplesPerLine = readUint16(); + frame.components = []; + var componentsCount = data[offset++], componentId; + var maxH = 0, maxV = 0; + for (i = 0; i < componentsCount; i++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + var qId = data[offset + 2]; + frame.components[componentId] = { + h: h, + v: v, + quantizationTable: quantizationTables[qId] + }; + offset += 3; + } + prepareComponents(frame); + frames.push(frame); + break; + + case 0xFFC4: // DHT (Define Huffman Tables) + var huffmanLength = readUint16(); + for (i = 2; i < huffmanLength;) { + var huffmanTableSpec = data[offset++]; + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) + codeLengthSum += (codeLengths[j] = data[offset]); + var huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) + huffmanValues[j] = data[offset]; + i += 17 + codeLengthSum; + + ((huffmanTableSpec >> 4) === 0 ? + huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = + buildHuffmanTable(codeLengths, huffmanValues); + } + break; + + case 0xFFDD: // DRI (Define Restart Interval) + readUint16(); // skip data length + resetInterval = readUint16(); + break; + + case 0xFFDA: // SOS (Start of Scan) + var scanLength = readUint16(); + var selectorsCount = data[offset++]; + var components = [], component; + for (i = 0; i < selectorsCount; i++) { + component = frame.components[data[offset++]]; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + var processed = decodeScan(data, offset, + frame, components, resetInterval, + spectralStart, spectralEnd, + successiveApproximation >> 4, successiveApproximation & 15); + offset += processed; + break; + default: + throw "unknown JPEG marker " + fileMarker.toString(16); + } + fileMarker = readUint16(); + } + if (frames.length != 1) + throw "only single frame JPEGs supported"; + + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + for (var id in frame.components) { + if (frame.components.hasOwnProperty(id)) { + this.components.push({ + lines: buildComponentData(frame, frame.components[id]), + scaleX: frame.components[id].h / frame.maxH, + scaleY: frame.components[id].v / frame.maxV + }); + } + } + }, + getData: function getData(width, height) { + function clampTo8bit(a) { + return a < 0 ? 0 : a > 255 ? 255 : a; + } + var scaleX = this.width / width, scaleY = this.height / height; + + var component1, component2, component3, component4; + var component1Line, component2Line, component3Line, component4Line; + var x, y; + var offset = 0; + var Y, Cb, Cr, K, C, M, Ye, R, G, B; + var colorTransform; + var dataLength = width * height * this.components.length; + var data = new Uint8Array(dataLength); + switch (this.components.length) { + case 1: + component1 = this.components[0]; + for (y = 0; y < height; y++) { + component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)]; + for (x = 0; x < width; x++) { + Y = component1Line[0 | (x * component1.scaleX * scaleX)]; + + data[offset++] = Y; + } + } + break; + case 3: + // The default transform for three components is true + colorTransform = true; + // The adobe transform marker overrides any previous setting + if (this.adobe && this.adobe.transformCode) + colorTransform = true; + else if (typeof this.colorTransform != -1) + colorTransform = this.colorTransform == true; + + component1 = this.components[0]; + component2 = this.components[1]; + component3 = this.components[2]; + for (y = 0; y < height; y++) { + component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)]; + component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)]; + component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)]; + for (x = 0; x < width; x++) { + if (!colorTransform) { + R = component1Line[0 | (x * component1.scaleX * scaleX)]; + G = component2Line[0 | (x * component2.scaleX * scaleX)]; + B = component3Line[0 | (x * component3.scaleX * scaleX)]; + } else { + Y = component1Line[0 | (x * component1.scaleX * scaleX)]; + Cb = component2Line[0 | (x * component2.scaleX * scaleX)]; + Cr = component3Line[0 | (x * component3.scaleX * scaleX)]; + + R = clampTo8bit(Y + 1.402 * (Cr - 128)); + G = clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128)); + B = clampTo8bit(Y + 1.772 * (Cb - 128)); + } + + data[offset++] = R; + data[offset++] = G; + data[offset++] = B; + } + } + break; + case 4: + if (!this.adobe) + throw 'Unsupported color mode (4 components)'; + // The default transform for four components is false + colorTransform = false; + // The adobe transform marker overrides any previous setting + if (this.adobe && this.adobe.transformCode) + colorTransform = true; + else if (typeof this.colorTransform != -1) + colorTransform = this.colorTransform == true; + + component1 = this.components[0]; + component2 = this.components[1]; + component3 = this.components[2]; + component4 = this.components[3]; + for (y = 0; y < height; y++) { + component1Line = component1.lines[0 | (y * component1.scaleY * scaleY)]; + component2Line = component2.lines[0 | (y * component2.scaleY * scaleY)]; + component3Line = component3.lines[0 | (y * component3.scaleY * scaleY)]; + component4Line = component4.lines[0 | (y * component4.scaleY * scaleY)]; + for (x = 0; x < width; x++) { + if (!colorTransform) { + C = component1Line[0 | (x * component1.scaleX * scaleX)]; + M = component2Line[0 | (x * component2.scaleX * scaleX)]; + Ye = component3Line[0 | (x * component3.scaleX * scaleX)]; + K = component4Line[0 | (x * component4.scaleX * scaleX)]; + } else { + Y = component1Line[0 | (x * component1.scaleX * scaleX)]; + Cb = component2Line[0 | (x * component2.scaleX * scaleX)]; + Cr = component3Line[0 | (x * component3.scaleX * scaleX)]; + K = component4Line[0 | (x * component4.scaleX * scaleX)]; + + C = 255 - clampTo8bit(Y + 1.402 * (Cr - 128)); + M = 255 - clampTo8bit(Y - 0.3441363 * (Cb - 128) - 0.71413636 * (Cr - 128)); + Ye = 255 - clampTo8bit(Y + 1.772 * (Cb - 128)); + } + data[offset++] = C; + data[offset++] = M; + data[offset++] = Ye; + data[offset++] = K; + } + } + break; + default: + throw 'Unsupported color mode'; + } + return data; + }, + copyToImageData: function copyToImageData(imageData) { + this.getData(imageData.data, imageData.width, imageData.height); + } + }; + + return constructor; +})(); \ No newline at end of file From edf6f51c27d9a721ed6640ef926ae8878fd95048 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 15 Nov 2011 15:51:32 -0800 Subject: [PATCH 23/68] Remove submodule documentation. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index be342060d..deb925601 100644 --- a/README.md +++ b/README.md @@ -45,8 +45,6 @@ To get a local copy of the current code, clone it using git: $ git clone git://github.com/mozilla/pdf.js.git pdfjs $ cd pdfjs - $ git submodule init - $ git submodule update Next, you need to start a local web server as some browsers don't allow opening PDF files for a file:// url: From d2964f3e94b92629150cb97525753dc845d6eade Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 16 Nov 2011 15:12:42 -0800 Subject: [PATCH 24/68] Update documentation. --- src/stream.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/stream.js b/src/stream.js index 69f792b58..c7b5c8121 100644 --- a/src/stream.js +++ b/src/stream.js @@ -756,8 +756,13 @@ var PredictorStream = (function predictorStream() { return constructor; })(); -// A JpegStream can't be read directly. We use the platform to render -// the underlying JPEG data for us. +/** + * Depending on the type of JPEG a JpegStream is handled in different ways. For + * JPEG's that are supported natively such as DeviceGray and DeviceRGB the image + * data is stored and then loaded by the browser. For unsupported JPEG's we use + * a library to decode these images and the stream behaves like all the other + * DecodeStreams. + */ var JpegStream = (function jpegStream() { function isAdobeImage(bytes) { var maxBytesScanned = Math.max(bytes.length - 16, 1024); From 564fe0d90783db6b34071270f54af36a8edd54d7 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 16 Nov 2011 15:16:04 -0800 Subject: [PATCH 25/68] Remove open web pdf until we can resolve the performance issues. --- test/test_manifest.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/test/test_manifest.json b/test/test_manifest.json index a6f2dc72a..583e1cbaa 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -44,13 +44,6 @@ "rounds": 1, "type": "eq" }, - { "id": "openweb-cover", - "file": "pdfs/openweb_tm-PRINT.pdf", - "md5": "53f611dfc19ddfb50554c21c4af465c0", - "link": true, - "rounds": 1, - "type": "eq" - }, { "id": "plusminus", "file": "pdfs/Test-plusminus.pdf", "md5": "1ec7ade5b95ac9aaba3a618af28d34c7", From b150f8be0dd163c542c35dbca1fdbaeaf223f392 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Wed, 16 Nov 2011 15:18:31 -0800 Subject: [PATCH 26/68] Remove the open web link file for now. --- test/pdfs/openweb_tm-PRINT.pdf.link | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test/pdfs/openweb_tm-PRINT.pdf.link diff --git a/test/pdfs/openweb_tm-PRINT.pdf.link b/test/pdfs/openweb_tm-PRINT.pdf.link deleted file mode 100644 index 08c897140..000000000 --- a/test/pdfs/openweb_tm-PRINT.pdf.link +++ /dev/null @@ -1 +0,0 @@ -http://openweb.flossmanuals.net/materials/openweb_tm-PRINT.pdf \ No newline at end of file From 7a5556ca91ff2a5ebdb4038564d5f1cd96436f56 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Mon, 21 Nov 2011 09:35:36 -0800 Subject: [PATCH 27/68] Add license. --- external/jpgjs/LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 external/jpgjs/LICENSE diff --git a/external/jpgjs/LICENSE b/external/jpgjs/LICENSE new file mode 100644 index 000000000..d1c08028c --- /dev/null +++ b/external/jpgjs/LICENSE @@ -0,0 +1,21 @@ + +Copyright (C) 2011 by notmasteryet + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. From b64b7d55b1e805fbcf0d41f843a06f162a801537 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 22 Nov 2011 09:32:20 -0800 Subject: [PATCH 28/68] Use the updated jpgjs with faster transform. --- external/jpgjs/LICENSE | 3 + external/jpgjs/jpg.js | 323 ++++++++++++++++++++++++++++++++--------- src/stream.js | 3 +- 3 files changed, 261 insertions(+), 68 deletions(-) diff --git a/external/jpgjs/LICENSE b/external/jpgjs/LICENSE index d1c08028c..f28619c6a 100644 --- a/external/jpgjs/LICENSE +++ b/external/jpgjs/LICENSE @@ -1,6 +1,9 @@ Copyright (C) 2011 by notmasteryet +Contributors: Yury Delendik + Brendan Dahl <bdahl@mozilla.com> + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including diff --git a/external/jpgjs/jpg.js b/external/jpgjs/jpg.js index 6ae443c41..dc8956ac0 100644 --- a/external/jpgjs/jpg.js +++ b/external/jpgjs/jpg.js @@ -11,44 +11,36 @@ var JpegImage = (function jpegImage() { "use strict"; + var dctZigZag = new Int32Array([ + 0, + 1, 8, + 16, 9, 2, + 3, 10, 17, 24, + 32, 25, 18, 11, 4, + 5, 12, 19, 26, 33, 40, + 48, 41, 34, 27, 20, 13, 6, + 7, 14, 21, 28, 35, 42, 49, 56, + 57, 50, 43, 36, 29, 22, 15, + 23, 30, 37, 44, 51, 58, + 59, 52, 45, 38, 31, + 39, 46, 53, 60, + 61, 54, 47, + 55, 62, + 63 + ]); - function constructor(colorTransform) { - this.colorTransform = typeof colorTransform !== 'undefined' ? colorTransform : -1; + var dctCos1 = 4017 // cos(pi/16) + var dctSin1 = 799 // sin(pi/16) + var dctCos3 = 3406 // cos(3*pi/16) + var dctSin3 = 2276 // sin(3*pi/16) + var dctCos6 = 1567 // cos(6*pi/16) + var dctSin6 = 3784 // sin(6*pi/16) + var dctSqrt2 = 5793 // sqrt(2) + var dctSqrt1d2 = 2896 // sqrt(2) / 2 + + function constructor() { } - var iDCTTables = (function initDCTTables() { - var cosTables = [], i, j; - for (i = 0; i < 8; i++) { - cosTables.push(new Float32Array(8)); - for (j = 0; j < 8; j++) - cosTables[i][j] = Math.cos((2 * i + 1) * j * Math.PI / 16) * - (j > 0 ? 1 : 1/Math.sqrt(2)); - } - - var zzTransform = new Int32Array([ - 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12, - 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32, - 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, - 50, 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63]); - - var x, y, u, v; - var tables = []; - for (y = 0; y < 8; y++) { - var cosTable_y = cosTables[y]; - for (x = 0; x < 8; x++) { - var cosTable_x = cosTables[x]; - var table = new Float32Array(64); - i = 0; - for (v = 0; v < 8; v++) { - for (u = 0; u < 8; u++) - table[zzTransform[i++]] = cosTable_x[u] * cosTable_y[v]; - } - tables.push(table); - } - } - return tables; - })(); - function buildHuffmanTable(codeLengths, values) { var k = 0, code = [], i, j, length = 16; while (length > 0 && !codeLengths[length - 1]) @@ -151,7 +143,8 @@ var JpegImage = (function jpegImage() { continue; } k += r; - zz[k] = receiveAndExtend(s); + var z = dctZigZag[k]; + zz[z] = receiveAndExtend(s); k++; } } @@ -182,7 +175,8 @@ var JpegImage = (function jpegImage() { continue; } k += r; - zz[k] = receiveAndExtend(s) * (1 << successive); + var z = dctZigZag[k]; + zz[z] = receiveAndExtend(s) * (1 << successive); k++; } } @@ -190,6 +184,7 @@ var JpegImage = (function jpegImage() { function decodeACSuccessive(component, zz) { var k = spectralStart, e = spectralEnd, r = 0; while (k <= e) { + var z = dctZigZag[k]; switch (successiveACState) { case 0: // initial state var rs = decodeHuffman(component.huffmanTableAC); @@ -211,8 +206,8 @@ var JpegImage = (function jpegImage() { continue; case 1: // skipping r zero items case 2: - if (zz[k]) - zz[k] += (readBit() << successive); + if (zz[z]) + zz[z] += (readBit() << successive); else { r--; if (r === 0) @@ -220,16 +215,16 @@ var JpegImage = (function jpegImage() { } break; case 3: // set value for a zero item - if (zz[k]) - zz[k] += (readBit() << successive); + if (zz[z]) + zz[z] += (readBit() << successive); else { - zz[k] = successiveACNextValue << successive; + zz[z] = successiveACNextValue << successive; successiveACState = 0; } break; case 4: // eob - if (zz[k]) - zz[k] += (readBit() << successive); + if (zz[z]) + zz[z] += (readBit() << successive); break; } k++; @@ -325,27 +320,166 @@ var JpegImage = (function jpegImage() { var blocksPerLine = component.blocksPerLine; var blocksPerColumn = component.blocksPerColumn; var samplesPerLine = blocksPerLine << 3; + var R = new Int32Array(64), r = new Uint8Array(64); - function quantizeAndInverse(zz) { + // A port of poppler's IDCT method which in turn is taken from: + // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, + // "Practical Fast 1-D DCT Algorithms with 11 Multiplications", + // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, + // 988-991. + function quantizeAndInverse(zz, dataOut, dataIn) { var qt = component.quantizationTable; - var precisionShift = frame.precision - 8; + var v0, v1, v2, v3, v4, v5, v6, v7, t; + var p = dataIn; + var i; - var R = new Int32Array(64); + // dequant for (i = 0; i < 64; i++) - R[i] = zz[i] * qt[i]; + p[i] = zz[i] * qt[i]; - var r = new Uint8Array(64), i, j; - for (i = 0; i < 64; i++) { - var sum = 0; - var table = iDCTTables[i]; - for (j = 0; j < 64; j++) - sum += table[j] * R[j]; - // TODO loosing precision? - var sample = 128 + ((sum / 4) >> precisionShift); - // clamping - r[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample; + // inverse DCT on rows + for (i = 0; i < 8; ++i) { + var row = 8 * i; + + // check for all-zero AC coefficients + if (p[1 + row] == 0 && p[2 + row] == 0 && p[3 + row] == 0 && + p[4 + row] == 0 && p[5 + row] == 0 && p[6 + row] == 0 && + p[7 + row] == 0) { + t = (dctSqrt2 * p[0 + row] + 512) >> 10; + p[0 + row] = t; + p[1 + row] = t; + p[2 + row] = t; + p[3 + row] = t; + p[4 + row] = t; + p[5 + row] = t; + p[6 + row] = t; + p[7 + row] = t; + continue; + } + + // stage 4 + v0 = (dctSqrt2 * p[0 + row] + 128) >> 8; + v1 = (dctSqrt2 * p[4 + row] + 128) >> 8; + v2 = p[2 + row]; + v3 = p[6 + row]; + v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8; + v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8; + v5 = p[3 + row] << 4; + v6 = p[5 + row] << 4; + + // stage 3 + t = (v0 - v1+ 1) >> 1; + v0 = (v0 + v1 + 1) >> 1; + v1 = t; + t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8; + v3 = t; + t = (v4 - v6 + 1) >> 1; + v4 = (v4 + v6 + 1) >> 1; + v6 = t; + t = (v7 + v5 + 1) >> 1; + v5 = (v7 - v5 + 1) >> 1; + v7 = t; + + // stage 2 + t = (v0 - v3 + 1) >> 1; + v0 = (v0 + v3 + 1) >> 1; + v3 = t; + t = (v1 - v2 + 1) >> 1; + v1 = (v1 + v2 + 1) >> 1; + v2 = t; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p[0 + row] = v0 + v7; + p[7 + row] = v0 - v7; + p[1 + row] = v1 + v6; + p[6 + row] = v1 - v6; + p[2 + row] = v2 + v5; + p[5 + row] = v2 - v5; + p[3 + row] = v3 + v4; + p[4 + row] = v3 - v4; + } + + // inverse DCT on columns + for (i = 0; i < 8; ++i) { + var col = i; + + // check for all-zero AC coefficients + if (p[1*8 + col] == 0 && p[2*8 + col] == 0 && p[3*8 + col] == 0 && + p[4*8 + col] == 0 && p[5*8 + col] == 0 && p[6*8 + col] == 0 && + p[7*8 + col] == 0) { + t = (dctSqrt2 * dataIn[i+0] + 8192) >> 14; + p[0*8 + col] = t; + p[1*8 + col] = t; + p[2*8 + col] = t; + p[3*8 + col] = t; + p[4*8 + col] = t; + p[5*8 + col] = t; + p[6*8 + col] = t; + p[7*8 + col] = t; + continue; + } + + // stage 4 + v0 = (dctSqrt2 * p[0*8 + col] + 2048) >> 12; + v1 = (dctSqrt2 * p[4*8 + col] + 2048) >> 12; + v2 = p[2*8 + col]; + v3 = p[6*8 + col]; + v4 = (dctSqrt1d2 * (p[1*8 + col] - p[7*8 + col]) + 2048) >> 12; + v7 = (dctSqrt1d2 * (p[1*8 + col] + p[7*8 + col]) + 2048) >> 12; + v5 = p[3*8 + col]; + v6 = p[5*8 + col]; + + // stage 3 + t = (v0 - v1 + 1) >> 1; + v0 = (v0 + v1 + 1) >> 1; + v1 = t; + t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12; + v3 = t; + t = (v4 - v6 + 1) >> 1; + v4 = (v4 + v6 + 1) >> 1; + v6 = t; + t = (v7 + v5 + 1) >> 1; + v5 = (v7 - v5 + 1) >> 1; + v7 = t; + + // stage 2 + t = (v0 - v3 + 1) >> 1; + v0 = (v0 + v3 + 1) >> 1; + v3 = t; + t = (v1 - v2 + 1) >> 1; + v1 = (v1 + v2 + 1) >> 1; + v2 = t; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p[0*8 + col] = v0 + v7; + p[7*8 + col] = v0 - v7; + p[1*8 + col] = v1 + v6; + p[6*8 + col] = v1 - v6; + p[2*8 + col] = v2 + v5; + p[5*8 + col] = v2 - v5; + p[3*8 + col] = v3 + v4; + p[4*8 + col] = v3 - v4; + } + + // convert to 8-bit integers + for (i = 0; i < 64; ++i) { + var sample = 128 + ((p[i] + 8) >> 4); + dataOut[i] = sample < 0 ? 0 : sample > 0xFF ? 0xFF : sample; } - return r; } var i, j; @@ -354,7 +488,7 @@ var JpegImage = (function jpegImage() { for (i = 0; i < 8; i++) lines.push(new Uint8Array(samplesPerLine)); for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { - var r = quantizeAndInverse(component.blocks[blockRow][blockCol]); + quantizeAndInverse(component.blocks[blockRow][blockCol], r, R); var offset = 0, sample = blockCol << 3; for (j = 0; j < 8; j++) { @@ -498,8 +632,10 @@ var JpegImage = (function jpegImage() { var quantizationTableSpec = data[offset++]; var tableData = new Int32Array(64); if ((quantizationTableSpec >> 4) === 0) { // 8 bit values - for (j = 0; j < 64; j++) - tableData[j] = data[offset++]; + for (j = 0; j < 64; j++) { + var z = dctZigZag[j]; + tableData[z] = data[offset++]; + } } else if ((quantizationTableSpec >> 4) === 1) { //16 bit tableData[j] = readUint16(); } else @@ -634,8 +770,8 @@ var JpegImage = (function jpegImage() { // The adobe transform marker overrides any previous setting if (this.adobe && this.adobe.transformCode) colorTransform = true; - else if (typeof this.colorTransform != -1) - colorTransform = this.colorTransform == true; + else if (typeof this.colorTransform !== 'undefined') + colorTransform = !!this.colorTransform; component1 = this.components[0]; component2 = this.components[1]; @@ -673,8 +809,8 @@ var JpegImage = (function jpegImage() { // The adobe transform marker overrides any previous setting if (this.adobe && this.adobe.transformCode) colorTransform = true; - else if (typeof this.colorTransform != -1) - colorTransform = this.colorTransform == true; + else if (typeof this.colorTransform !== 'undefined') + colorTransform = !!this.colorTransform; component1 = this.components[0]; component2 = this.components[1]; @@ -714,7 +850,60 @@ var JpegImage = (function jpegImage() { return data; }, copyToImageData: function copyToImageData(imageData) { - this.getData(imageData.data, imageData.width, imageData.height); + var width = imageData.width, height = imageData.height; + var imageDataArray = imageData.data; + var data = this.getData(width, height); + var i = 0, j = 0, x, y; + var Y, K, C, M, R, G, B; + switch (this.components.length) { + case 1: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + Y = data[i++]; + + imageDataArray[j++] = Y; + imageDataArray[j++] = Y; + imageDataArray[j++] = Y; + imageDataArray[j++] = 255; + } + } + break; + case 3: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + R = data[i++]; + G = data[i++]; + B = data[i++]; + + imageDataArray[j++] = R; + imageDataArray[j++] = G; + imageDataArray[j++] = B; + imageDataArray[j++] = 255; + } + } + break; + case 4: + for (y = 0; y < height; y++) { + for (x = 0; x < width; x++) { + C = data[i++]; + M = data[i++]; + Y = data[i++]; + K = data[i++]; + + R = 255 - clampTo8bit(C * (1 - K / 255) + K); + G = 255 - clampTo8bit(M * (1 - K / 255) + K); + B = 255 - clampTo8bit(Y * (1 - K / 255) + K); + + imageDataArray[j++] = R; + imageDataArray[j++] = G; + imageDataArray[j++] = B; + imageDataArray[j++] = 255; + } + } + break; + default: + throw 'Unsupported color mode'; + } } }; diff --git a/src/stream.js b/src/stream.js index c7b5c8121..559fb2ca2 100644 --- a/src/stream.js +++ b/src/stream.js @@ -830,7 +830,8 @@ var JpegStream = (function jpegStream() { constructor.prototype.ensureBuffer = function jpegStreamEnsureBuffer(req) { if (this.bufferLength) return; - var jpegImage = new JpegImage(this.colorTransform); + var jpegImage = new JpegImage(); + jpegImage.colorTransform = this.colorTransform; jpegImage.parse(this.bytes); var width = jpegImage.width; var height = jpegImage.height; From 709dc1a0c9f334d5079c03feb69323bec1c21372 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Thu, 24 Nov 2011 09:38:09 -0600 Subject: [PATCH 29/68] Initial ToUnicode modifications --- src/canvas.js | 8 +++----- src/evaluator.js | 16 +++++++++++++--- src/fonts.js | 41 +++++++++++++++++++++++++++++++++++++++-- 3 files changed, 55 insertions(+), 10 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 9b3ed0ba9..8d6fb046d 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -474,13 +474,11 @@ var CanvasGraphics = (function canvasGraphics() { continue; } - var unicode = glyph.unicode; - var char = (unicode >= 0x10000) ? - String.fromCharCode(0xD800 | ((unicode - 0x10000) >> 10), - 0xDC00 | (unicode & 0x3FF)) : String.fromCharCode(unicode); - + var char = glyph.fontChar; ctx.fillText(char, width, 0); width += glyph.width * fontSize * 0.001 + charSpacing; + + // TODO actual characters can be extracted from the glyph.unicode } current.x += width; diff --git a/src/evaluator.js b/src/evaluator.js index a863a531e..03fce2d9a 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -512,6 +512,7 @@ var PartialEvaluator = (function partialEvaluator() { error('Encoding is not a Name nor a Dict'); } } + properties.differences = differences; properties.baseEncoding = baseEncoding; properties.hasEncoding = hasEncoding; @@ -595,9 +596,18 @@ var PartialEvaluator = (function partialEvaluator() { } } else if (byte == 0x3E) { if (token.length) { - // parsing hex number - tokens.push(parseInt(token, 16)); - token = ''; + if (token.length <= 4) { + // parsing hex number + tokens.push(parseInt(token, 16)); + token = ''; + } else { + // parsing hex UTF-16BE numbers + var str = []; + for (var i = 0, ii = token.length; i < ii; i += 4) + str.push(parseInt(token.substr(i, 4), 16)); + tokens.push(String.fromCharCode.apply(String, str)); + token = ''; + } } } else { token += String.fromCharCode(byte); diff --git a/src/fonts.js b/src/fonts.js index 116bb4dfc..d028a9786 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -771,7 +771,6 @@ var Font = (function Font() { this.widths = properties.widths; this.defaultWidth = properties.defaultWidth; this.composite = properties.composite; - this.toUnicode = properties.toUnicode; this.hasEncoding = properties.hasEncoding; this.fontMatrix = properties.fontMatrix; @@ -781,6 +780,11 @@ var Font = (function Font() { // Trying to fix encoding using glyph CIDSystemInfo. this.loadCidToUnicode(properties); + if (properties.toUnicode) + this.toUnicode = properties.toUnicode; + else + this.rebuildToUnicode(properties); + if (!file) { // The file data is not specified. Trying to fix the font name // to be used with the canvas.font. @@ -1898,6 +1902,29 @@ var Font = (function Font() { return stringToArray(otf.file); }, + rebuildToUnicode: function font_rebuildToUnicode(properties) { + var map = []; + if (properties.composite) { + for (var i = properties.firstChar, ii = properties.lastChar; i <= ii; i++) { + // TODO missing map the character according font's CMap + var cid = i; + map[i] = this.cidToUnicode[cid]; + } + } else { + for (var i = properties.firstChar, ii = properties.lastChar; i <= ii; i++) { + var glyph = properties.differences[i]; + if (!glyph) + glyph = properties.baseEncoding[i]; + if (!!glyph && (glyph in GlyphsUnicode)) + map[i] = GlyphsUnicode[glyph] + } + } + this.toUnicode = map; + this.refreshToUnicode = function refreshToUnicode() { + this.font_rebuildToUnicode(properties); + }; + }, + loadCidToUnicode: function font_loadCidToUnicode(properties) { if (properties.cidToGidMap) { this.cidToUnicode = properties.cidToGidMap; @@ -2039,8 +2066,18 @@ var Font = (function Font() { warn('Unsupported font type: ' + this.type); break; } + + var unicodeChars = this.toUnicode ? this.toUnicode[charcode] : charcode; + if (typeof unicodeChars === 'number') { + unicodeChars = (unicodeChars >= 0x10000) ? + String.fromCharCode(0xD800 | ((unicodeChars - 0x10000) >> 10), + 0xDC00 | (unicodeChars & 0x3FF)) : String.fromCharCode(unicodeChars); + // TODO we probably don't need convert high/low surrogate... keeping for now + } + return { - unicode: unicode, + fontChar: String.fromCharCode(unicode), + unicode: unicodeChars, width: isNum(width) ? width : this.defaultWidth, codeIRQueue: codeIRQueue }; From 868591554285c4577372b4a1478cf987aed76d15 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Thu, 24 Nov 2011 12:53:11 -0600 Subject: [PATCH 30/68] Re-using the pages as thumbnails --- web/viewer.js | 58 ++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 8 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index bfb3a4303..c8b830431 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -193,6 +193,13 @@ var PDFView = { }, load: function pdfViewLoad(data, scale) { + function bindOnAfterDraw(pageView, thumbnailView) { + // when page is painted, using the image as thumbnail base + pageView.onAfterDraw = function pdfViewLoadOnAfterDraw() { + thumbnailView.setImage(pageView.canvas); + }; + } + var loadingIndicator = document.getElementById('loading'); loadingIndicator.setAttribute('hidden', 'true'); @@ -219,10 +226,14 @@ var PDFView = { var thumbnails = this.thumbnails = []; for (var i = 1; i <= pagesCount; i++) { var page = pdf.getPage(i); - pages.push(new PageView(container, page, i, page.width, page.height, - page.stats, this.navigateTo.bind(this))); - thumbnails.push(new ThumbnailView(sidebar, page, i, - page.width / page.height)); + var pageView = new PageView(container, page, i, page.width, page.height, + page.stats, this.navigateTo.bind(this)); + var thumbnailView = new ThumbnailView(sidebar, page, i, + page.width / page.height); + bindOnAfterDraw(pageView, thumbnailView); + + pages.push(pageView); + thumbnails.push(thumbnailView); var pageRef = page.ref; pagesRefMap[pageRef.num + ' ' + pageRef.gen + ' R'] = i; } @@ -360,6 +371,8 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, while (div.hasChildNodes()) div.removeChild(div.lastChild); div.removeAttribute('data-loaded'); + + delete this.canvas; }; function setupLinks(content, scale) { @@ -474,6 +487,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, canvas.id = 'page' + this.id; canvas.mozOpaque = true; div.appendChild(canvas); + this.canvas = canvas; var scale = this.scale; canvas.width = pageWidth * scale; @@ -487,7 +501,11 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats); + this.content.startRendering(ctx, (function pageViewDrawCallback() { + this.updateStats(); + if (this.onAfterDraw) + this.onAfterDraw(); + }).bind(this)); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); @@ -518,10 +536,9 @@ var ThumbnailView = function thumbnailView(container, page, id, pageRatio) { anchor.appendChild(div); container.appendChild(anchor); - this.draw = function thumbnailViewDraw() { - if (div.hasChildNodes()) - return; + this.hasImage = false; + function getPageDrawContext() { var canvas = document.createElement('canvas'); canvas.id = 'thumbnail' + id; canvas.mozOpaque = true; @@ -549,7 +566,28 @@ var ThumbnailView = function thumbnailView(container, page, id, pageRatio) { div.style.height = (view.height * scaleY) + 'px'; div.style.lineHeight = (view.height * scaleY) + 'px'; + return ctx; + } + + this.draw = function thumbnailViewDraw() { + if (this.hasImage) + return; + + var ctx = getPageDrawContext(); page.startRendering(ctx, function thumbnailViewDrawStartRendering() {}); + + this.hasImage = true; + }; + + this.setImage = function thumbnailViewSetImage(img) { + if (this.hasImage) + return; + + var ctx = getPageDrawContext(); + ctx.drawImage(img, 0, 0, img.width, img.height, + 0, 0, ctx.canvas.width, ctx.canvas.height); + + this.hasImage = true; }; }; @@ -687,6 +725,10 @@ window.addEventListener('transitionend', function webViewerTransitionend(evt) { var container = document.getElementById('sidebarView'); container._interval = window.setInterval(function interval() { + // skipping the thumbnails with set images + while (pageIndex < pagesCount && PDFView.thumbnails[pageIndex].hasImage) + pageIndex++; + if (pageIndex >= pagesCount) { window.clearInterval(container._interval); return; From a30f0ff848beb8d205c9e4c061973f5955181f79 Mon Sep 17 00:00:00 2001 From: Julian Viereck <julian.viereck@gmail.com> Date: Tue, 22 Nov 2011 21:00:04 +0100 Subject: [PATCH 31/68] Implement ctx.mozCurrentTransform and ctx.mozCurrentTransformInverse shim --- src/canvas.js | 109 +++++++++++++++++++++++++++++++++++++++++++++++++ src/pattern.js | 2 + 2 files changed, 111 insertions(+) diff --git a/src/canvas.js b/src/canvas.js index 9b3ed0ba9..d9c60f416 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -59,6 +59,111 @@ function ScratchCanvas(width, height) { return canvas; } +function addCtxCurrentTransform(ctx) { + // If the context doesn't expose a `mozCurrentTransform`, add a JS based on. + if (!ctx.mozCurrentTransform) { + // Store the original context + ctx._originalSave = ctx.save; + ctx._originalRestore = ctx.restore; + ctx._originalRotate = ctx.rotate; + ctx._originalScale = ctx.scale; + ctx._originalTranslate = ctx.translate; + ctx._originalTransform = ctx.transform; + + ctx._transformMatrix = [1, 0, 0, 1, 0, 0]; + ctx._transformStack = []; + + ctx.__defineGetter__('mozCurrentTransform', function getCurrentTransform() { + return this._transformMatrix; + }); + + ctx.__defineGetter__('mozCurrentTransformInverse', + function getCurrentTransformInverse() { + // Calculation done using WolframAlpha: + // http://www.wolframalpha.com/input/? + // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}} + + var m = this._transformMatrix; + var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5]; + + return [ + d / (a * d - b * c), + b / (b * c - a * d), + c / (b * c - a * d), + a / (a * d - b * c), + (d * e - c * f) / (b * c - a * d), + (b * e - a * f) / (a * d - b * c) + ]; + } + ); + + ctx.save = function ctxSave() { + var old = this._transformMatrix; + this._transformStack.push(old); + this._transformMatrix = old.slice(0, 6); + + this._originalSave(); + }; + + ctx.restore = function ctxRestore() { + var prev = this._transformStack.pop(); + if (prev) { + this._transformMatrix = prev; + this._originalRestore(); + } + } + + ctx.translate = function ctxTranslate(x, y) { + var m = this._transformMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + + this._originalTranslate(x, y); + } + + ctx.scale = function ctxScale(x, y) { + var m = this._transformMatrix; + m[0] = m[0] * x; + m[1] = m[1] * x; + m[2] = m[2] * y; + m[3] = m[3] * y; + + this._originalScale(x, y); + } + + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + var m = this._transformMatrix; + this._transformMatrix = [ + m[0] * a + m[2] * b, + m[1] * a + m[3] * b, + m[0] * c + m[2] * d, + m[1] * c + m[3] * d, + m[0] * e + m[2] * f + m[4], + m[1] * e + m[3] * f + m[5] + ]; + + ctx._originalTransform(a, b, c, d, e, f); + } + + ctx.rotate = function ctxRotate(angle) { + var cosValue = Math.cos(angle); + var sinValue = Math.sin(angle); + + var m = this._transformMatrix; + this._transformMatrix = [ + m[0] * cosValue + m[2] * sinValue, + m[1] * cosValue + m[3] * sinValue, + m[0] * (-sinValue) + m[2] * cosValue, + m[1] * (-sinValue) + m[3] * cosValue, + m[4], + m[5] + ]; + + this._originalRotate(angle); + } + } +} + var CanvasGraphics = (function canvasGraphics() { // Defines the time the executeIRQueue is going to be executing // before it stops and shedules a continue of execution. @@ -77,6 +182,10 @@ var CanvasGraphics = (function canvasGraphics() { this.xobjs = null; this.ScratchCanvas = ScratchCanvas; this.objs = objs; + + if (canvasCtx) { + addCtxCurrentTransform(canvasCtx); + } } var LINE_CAP_STYLES = ['butt', 'round', 'square']; diff --git a/src/pattern.js b/src/pattern.js index 72d13d896..c565e8b7f 100644 --- a/src/pattern.js +++ b/src/pattern.js @@ -217,6 +217,8 @@ var TilingPattern = (function tilingPattern() { // set the new canvas element context as the graphics context var tmpCtx = tmpCanvas.getContext('2d'); + addCtxCurrentTransform(tmpCtx); + var graphics = new CanvasGraphics(tmpCtx, objs); switch (paintType) { From 36e618c373f718320faa0540536263a7c37068f9 Mon Sep 17 00:00:00 2001 From: Julian Viereck <julian.viereck@gmail.com> Date: Sun, 27 Nov 2011 09:22:08 +0100 Subject: [PATCH 32/68] Address Yury's review comments + remove call to addCtxCurrentTransform in pattern.js as the contet is added during the CanvasGraphics constructor already --- src/canvas.js | 41 +++++++++++++++++++++++------------------ src/pattern.js | 2 -- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index d9c60f416..035651b0f 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -59,7 +59,7 @@ function ScratchCanvas(width, height) { return canvas; } -function addCtxCurrentTransform(ctx) { +function addContextCurrentTransform(ctx) { // If the context doesn't expose a `mozCurrentTransform`, add a JS based on. if (!ctx.mozCurrentTransform) { // Store the original context @@ -73,12 +73,14 @@ function addCtxCurrentTransform(ctx) { ctx._transformMatrix = [1, 0, 0, 1, 0, 0]; ctx._transformStack = []; - ctx.__defineGetter__('mozCurrentTransform', function getCurrentTransform() { - return this._transformMatrix; + Object.defineProperty(ctx, 'mozCurrentTransform', { + get: function getCurrentTransform() { + return this._transformMatrix; + } }); - ctx.__defineGetter__('mozCurrentTransformInverse', - function getCurrentTransformInverse() { + Object.defineProperty(ctx, 'mozCurrentTransformInverse', { + get: function getCurrentTransformInverse() { // Calculation done using WolframAlpha: // http://www.wolframalpha.com/input/? // i=Inverse+{{a%2C+c%2C+e}%2C+{b%2C+d%2C+f}%2C+{0%2C+0%2C+1}} @@ -86,16 +88,19 @@ function addCtxCurrentTransform(ctx) { var m = this._transformMatrix; var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5]; + var ad_bc = a * d - b * c; + var bc_ad = b * c - a * d; + return [ - d / (a * d - b * c), - b / (b * c - a * d), - c / (b * c - a * d), - a / (a * d - b * c), - (d * e - c * f) / (b * c - a * d), - (b * e - a * f) / (a * d - b * c) + d / ad_bc, + b / bc_ad, + c / bc_ad, + a / ad_bc, + (d * e - c * f) / bc_ad, + (b * e - a * f) / ad_bc ]; } - ); + }); ctx.save = function ctxSave() { var old = this._transformMatrix; @@ -111,7 +116,7 @@ function addCtxCurrentTransform(ctx) { this._transformMatrix = prev; this._originalRestore(); } - } + }; ctx.translate = function ctxTranslate(x, y) { var m = this._transformMatrix; @@ -119,7 +124,7 @@ function addCtxCurrentTransform(ctx) { m[5] = m[1] * x + m[3] * y + m[5]; this._originalTranslate(x, y); - } + }; ctx.scale = function ctxScale(x, y) { var m = this._transformMatrix; @@ -129,7 +134,7 @@ function addCtxCurrentTransform(ctx) { m[3] = m[3] * y; this._originalScale(x, y); - } + }; ctx.transform = function ctxTransform(a, b, c, d, e, f) { var m = this._transformMatrix; @@ -143,7 +148,7 @@ function addCtxCurrentTransform(ctx) { ]; ctx._originalTransform(a, b, c, d, e, f); - } + }; ctx.rotate = function ctxRotate(angle) { var cosValue = Math.cos(angle); @@ -160,7 +165,7 @@ function addCtxCurrentTransform(ctx) { ]; this._originalRotate(angle); - } + }; } } @@ -184,7 +189,7 @@ var CanvasGraphics = (function canvasGraphics() { this.objs = objs; if (canvasCtx) { - addCtxCurrentTransform(canvasCtx); + addContextCurrentTransform(canvasCtx); } } diff --git a/src/pattern.js b/src/pattern.js index c565e8b7f..72d13d896 100644 --- a/src/pattern.js +++ b/src/pattern.js @@ -217,8 +217,6 @@ var TilingPattern = (function tilingPattern() { // set the new canvas element context as the graphics context var tmpCtx = tmpCanvas.getContext('2d'); - addCtxCurrentTransform(tmpCtx); - var graphics = new CanvasGraphics(tmpCtx, objs); switch (paintType) { From 8991cfad83768f3d73152ccf8ad1c59c595afa53 Mon Sep 17 00:00:00 2001 From: Julian Viereck <julian.viereck@gmail.com> Date: Sun, 27 Nov 2011 20:54:25 +0100 Subject: [PATCH 33/68] Check after each executed command if execution took too long already --- src/canvas.js | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 9b3ed0ba9..780a96c9b 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -64,10 +64,6 @@ var CanvasGraphics = (function canvasGraphics() { // before it stops and shedules a continue of execution. var kExecutionTime = 50; - // Number of IR commands to execute before checking - // if we execute longer then `kExecutionTime`. - var kExecutionTimeCheck = 500; - function constructor(canvasCtx, objs) { this.ctx = canvasCtx; this.current = new CanvasExtraState(); @@ -112,31 +108,33 @@ var CanvasGraphics = (function canvasGraphics() { var i = executionStartIdx || 0; var argsArrayLen = argsArray.length; + // Sometimes the IRQueue to execute is empty. + if (argsArrayLen == i) { + return i; + } + var executionEndIdx; var startTime = Date.now(); var objs = this.objs; - do { - executionEndIdx = Math.min(argsArrayLen, i + kExecutionTimeCheck); + while (true) { + if (fnArray[i] !== 'dependency') { + this[fnArray[i]].apply(this, argsArray[i]); + } else { + var deps = argsArray[i]; + for (var n = 0, nn = deps.length; n < nn; n++) { + var depObjId = deps[n]; - for (i; i < executionEndIdx; i++) { - if (fnArray[i] !== 'dependency') { - this[fnArray[i]].apply(this, argsArray[i]); - } else { - var deps = argsArray[i]; - for (var n = 0, nn = deps.length; n < nn; n++) { - var depObjId = deps[n]; - - // If the promise isn't resolved yet, add the continueCallback - // to the promise and bail out. - if (!objs.isResolved(depObjId)) { - objs.get(depObjId, continueCallback); - return i; - } + // If the promise isn't resolved yet, add the continueCallback + // to the promise and bail out. + if (!objs.isResolved(depObjId)) { + objs.get(depObjId, continueCallback); + return i; } } } + i++; // If the entire IRQueue was executed, stop as were done. if (i == argsArrayLen) { @@ -153,7 +151,7 @@ var CanvasGraphics = (function canvasGraphics() { // If the IRQueue isn't executed completly yet OR the execution time // was short enough, do another execution round. - } while (true); + } }, endDrawing: function canvasGraphicsEndDrawing() { From 08e3fd88ada78c094dfbe527854264b2c1c4dbb8 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Sun, 27 Nov 2011 20:43:23 -0600 Subject: [PATCH 34/68] Removing adaptUnicode; making cmap equal to ToUnicode tables --- src/evaluator.js | 18 ++- src/fonts.js | 277 +++++++++++++++++++++++++++-------------------- 2 files changed, 172 insertions(+), 123 deletions(-) diff --git a/src/evaluator.js b/src/evaluator.js index 03fce2d9a..3e687c72d 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -555,9 +555,21 @@ var PartialEvaluator = (function partialEvaluator() { var startRange = tokens[j]; var endRange = tokens[j + 1]; var code = tokens[j + 2]; - while (startRange <= endRange) { - charToUnicode[startRange] = code++; - ++startRange; + if (code == 0xFFFF) { + // CMap is broken, assuming code == startRange + code = startRange; + } + if (isArray(code)) { + var codeindex = 0; + while (startRange <= endRange) { + charToUnicode[startRange] = code[codeindex++]; + ++startRange; + } + } else { + while (startRange <= endRange) { + charToUnicode[startRange] = code++; + ++startRange; + } } } break; diff --git a/src/fonts.js b/src/fonts.js index d028a9786..fb9bb9f0c 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -719,20 +719,10 @@ function getUnicodeRangeFor(value) { return -1; } -function adaptUnicode(unicode) { - return (unicode <= 0x1F || (unicode >= 127 && unicode < kSizeOfGlyphArea)) ? - unicode + kCmapGlyphOffset : unicode; -} - -function isAdaptedUnicode(unicode) { - return unicode >= kCmapGlyphOffset && - unicode < kCmapGlyphOffset + kSizeOfGlyphArea; -} - function isSpecialUnicode(unicode) { return (unicode <= 0x1F || (unicode >= 127 && unicode < kSizeOfGlyphArea)) || - unicode >= kCmapGlyphOffset && - unicode < kCmapGlyphOffset + kSizeOfGlyphArea; + (unicode >= kCmapGlyphOffset && + unicode < kCmapGlyphOffset + kSizeOfGlyphArea); } /** @@ -965,15 +955,15 @@ var Font = (function Font() { var ranges = []; for (var n = 0; n < length; ) { var start = codes[n].unicode; - var startCode = codes[n].code; + var codeIndices = [codes[n].code]; ++n; var end = start; while (n < length && end + 1 == codes[n].unicode) { + codeIndices.push(codes[n].code); ++end; ++n; } - var endCode = codes[n - 1].code; - ranges.push([start, end, startCode, endCode]); + ranges.push([start, end, codeIndices]); } return ranges; @@ -1016,17 +1006,16 @@ var Font = (function Font() { idDeltas += string16(0); idRangeOffsets += string16(offset); - var startCode = range[2]; - var endCode = range[3]; - for (var j = startCode; j <= endCode; ++j) - glyphsIds += string16(deltas[j]); + var codes = range[2]; + for (var j = 0, jj = codes.length; j < jj; ++j) + glyphsIds += string16(deltas[codes[j]]); } } else { for (var i = 0; i < segCount - 1; i++) { var range = ranges[i]; var start = range[0]; var end = range[1]; - var startCode = range[2]; + var startCode = range[2][0]; startCount += string16(start); endCount += string16(end); @@ -1303,7 +1292,7 @@ var Font = (function Font() { properties.baseEncoding = encoding; } - function replaceCMapTable(cmap, font, properties) { + function readCMapTable(cmap, font) { var start = (font.start ? font.start : 0) + cmap.offset; font.pos = start; @@ -1320,7 +1309,7 @@ var Font = (function Font() { } // Check that table are sorted by platformID then encodingID, - records.sort(function fontReplaceCMapTableSort(a, b) { + records.sort(function fontReadCMapTableSort(a, b) { return ((a.platformID << 16) + a.encodingID) - ((b.platformID << 16) + b.encodingID); }); @@ -1375,16 +1364,15 @@ var Font = (function Font() { for (var j = 0; j < 256; j++) { var index = font.getByte(); if (index) { - var unicode = adaptUnicode(j); - glyphs.push({ unicode: unicode, code: j }); + glyphs.push({ unicode: j, code: j }); ids.push(index); } } - - properties.hasShortCmap = true; - - createGlyphNameMap(glyphs, ids, properties); - return cmap.data = createCMapTable(glyphs, ids); + return { + glyphs: glyphs, + ids: ids, + hasShortCmap: true + }; } else if (format == 4) { // re-creating the table in format 4 since the encoding // might be changed @@ -1436,17 +1424,18 @@ var Font = (function Font() { var glyphCode = offsetIndex < 0 ? j : offsets[offsetIndex + j - start]; glyphCode = (glyphCode + delta) & 0xFFFF; - if (glyphCode == 0 || isAdaptedUnicode(j)) + if (glyphCode == 0) continue; - var unicode = adaptUnicode(j); - glyphs.push({ unicode: unicode, code: j }); + glyphs.push({ unicode: j, code: j }); ids.push(glyphCode); } } - createGlyphNameMap(glyphs, ids, properties); - return cmap.data = createCMapTable(glyphs, ids); + return { + glyphs: glyphs, + ids: ids + }; } else if (format == 6) { // Format 6 is a 2-bytes dense mapping, which means the font data // lives glue together even if they are pretty far in the unicode @@ -1461,19 +1450,18 @@ var Font = (function Font() { for (var j = 0; j < entryCount; j++) { var glyphCode = int16(font.getBytes(2)); var code = firstCode + j; - if (isAdaptedUnicode(glyphCode)) - continue; - var unicode = adaptUnicode(code); - glyphs.push({ unicode: unicode, code: code }); + glyphs.push({ unicode: code, code: code }); ids.push(glyphCode); } - createGlyphNameMap(glyphs, ids, properties); - return cmap.data = createCMapTable(glyphs, ids); + return { + glyphs: glyphs, + ids: ids + }; } } - return cmap.data; + error('Unsupported cmap table format'); }; function sanitizeMetrics(font, header, metrics, numGlyphs) { @@ -1712,17 +1700,60 @@ var Font = (function Font() { tables.push(cmap); } - var glyphs = []; + var glyphs = [], ids = []; + var usedUnicodes = [], unusedUnicode = kCmapGlyphOffset; + var cidToGidMap = properties.cidToGidMap; for (i = 1; i < numGlyphs; i++) { - if (isAdaptedUnicode(i)) - continue; - - glyphs.push({ unicode: adaptUnicode(i) }); + var cid = cidToGidMap ? cidToGidMap.indexOf(i) : i; + var unicode = this.toUnicode[cid]; + if (!unicode || isSpecialUnicode(unicode) || + unicode in usedUnicodes) { + // overriding the special special symbols mapping + while (unusedUnicode in usedUnicodes) + unusedUnicode++; + this.toUnicode[cid] = unicode = unusedUnicode++; + if (unusedUnicode >= kCmapGlyphOffset + kSizeOfGlyphArea) { + // overflow of the user defined symblos range + // using symbols that a little bit lower than this range + unusedUnicode = kCmapGlyphOffset - numGlyphs; + } + } + usedUnicodes[unicode] = true; + glyphs.push({ unicode: unicode, code: cid }); + ids.push(i); } - cmap.data = createCMapTable(glyphs); + cmap.data = createCMapTable(glyphs, ids); } else { - replaceCMapTable(cmap, font, properties); + var cmapTable = readCMapTable(cmap, font); + var glyphs = cmapTable.glyphs; + var ids = cmapTable.ids; + var hasShortCmap = !!cmapTable.hasShortCmap; + var toUnicode = this.toUnicode; + + if (hasShortCmap && toUnicode) { + // checking if cmap is just identity map + var isIdentity = true; + for (var i = 0, ii = glyphs.length; i < ii; i++) { + if (glyphs[i].unicode != i + 1) { + isIdentity = false; + break; + } + } + // if it is, replacing with meaningful toUnicode values + if (isIdentity) { + for (var i = 0, ii = glyphs.length; i < ii; i++) { + var unicode = toUnicode[i + 1] || i + 1; + glyphs[i].unicode = unicode; + } + this.useToUnicode = true; + } + } + properties.hasShortCmap = hasShortCmap; + + createGlyphNameMap(glyphs, ids, properties); this.glyphNameMap = properties.glyphNameMap; + + cmap.data = createCMapTable(glyphs, ids); } // Rewrite the 'post' table if needed @@ -1812,6 +1843,14 @@ var Font = (function Font() { } properties.baseEncoding = encoding; } + if (properties.subtype == 'CIDFontType0C') { + var toUnicode = []; + for (var i = 0; i < charstrings.length; ++i) { + var charstring = charstrings[i]; + toUnicode[charstring.code] = charstring.unicode; + } + this.toUnicode = toUnicode; + } var fields = { // PostScript Font Program @@ -1872,8 +1911,11 @@ var Font = (function Font() { // Horizontal metrics 'hmtx': (function fontFieldsHmtx() { var hmtx = '\x00\x00\x00\x00'; // Fake .notdef - for (var i = 0, ii = charstrings.length; i < ii; i++) - hmtx += string16(charstrings[i].width) + string16(0); + for (var i = 0, ii = charstrings.length; i < ii; i++) { + var charstring = charstrings[i]; + var width = 'width' in charstring ? charstring.width : 0; + hmtx += string16(width) + string16(0); + } return stringToArray(hmtx); })(), @@ -1903,20 +1945,22 @@ var Font = (function Font() { }, rebuildToUnicode: function font_rebuildToUnicode(properties) { + var firstChar = properties.firstChar, lastChar = properties.lastChar; var map = []; if (properties.composite) { - for (var i = properties.firstChar, ii = properties.lastChar; i <= ii; i++) { + var isIdentityMap = this.cidToUnicode.length == 0; + for (var i = firstChar, ii = lastChar; i <= ii; i++) { // TODO missing map the character according font's CMap var cid = i; - map[i] = this.cidToUnicode[cid]; + map[i] = isIdentityMap ? cid : this.cidToUnicode[cid]; } } else { - for (var i = properties.firstChar, ii = properties.lastChar; i <= ii; i++) { + for (var i = firstChar, ii = lastChar; i <= ii; i++) { var glyph = properties.differences[i]; if (!glyph) glyph = properties.baseEncoding[i]; if (!!glyph && (glyph in GlyphsUnicode)) - map[i] = GlyphsUnicode[glyph] + map[i] = GlyphsUnicode[glyph]; } } this.toUnicode = map; @@ -1926,16 +1970,12 @@ var Font = (function Font() { }, loadCidToUnicode: function font_loadCidToUnicode(properties) { - if (properties.cidToGidMap) { - this.cidToUnicode = properties.cidToGidMap; - return; - } - if (!properties.cidSystemInfo) return; - var cidToUnicodeMap = []; + var cidToUnicodeMap = [], unicodeToCIDMap = []; this.cidToUnicode = cidToUnicodeMap; + this.unicodeToCID = unicodeToCIDMap; var cidSystemInfo = properties.cidSystemInfo; var cidToUnicode; @@ -1947,28 +1987,34 @@ var Font = (function Font() { if (!cidToUnicode) return; // identity encoding - var glyph = 1, i, j, k, ii; + var cid = 1, i, j, k, ii; for (i = 0, ii = cidToUnicode.length; i < ii; ++i) { var unicode = cidToUnicode[i]; if (isArray(unicode)) { var length = unicode.length; - for (j = 0; j < length; j++) - cidToUnicodeMap[unicode[j]] = glyph; - glyph++; + for (j = 0; j < length; j++) { + cidToUnicodeMap[cid] = unicode[j]; + unicodeToCIDMap[unicode[j]] = cid; + } + cid++; } else if (typeof unicode === 'object') { var fillLength = unicode.f; if (fillLength) { k = unicode.c; for (j = 0; j < fillLength; ++j) { - cidToUnicodeMap[k] = glyph++; + cidToUnicodeMap[cid] = k; + unicodeToCIDMap[k] = cid; + cid++; k++; } } else - glyph += unicode.s; + cid += unicode.s; } else if (unicode) { - cidToUnicodeMap[unicode] = glyph++; + cidToUnicodeMap[cid] = unicode; + unicodeToCIDMap[unicode] = cid; + cid++; } else - glyph++; + cid++; } }, @@ -2008,19 +2054,19 @@ var Font = (function Font() { switch (this.type) { case 'CIDFontType0': if (this.noUnicodeAdaptation) { - width = this.widths[this.cidToUnicode[charcode]]; + width = this.widths[this.unicodeToCID[charcode] || charcode]; unicode = charcode; break; } - unicode = adaptUnicode(this.cidToUnicode[charcode] || charcode); + unicode = this.toUnicode[charcode] || charcode; break; case 'CIDFontType2': if (this.noUnicodeAdaptation) { - width = this.widths[this.cidToUnicode[charcode]]; + width = this.widths[this.unicodeToCID[charcode] || charcode]; unicode = charcode; break; } - unicode = adaptUnicode(this.cidToUnicode[charcode] || charcode); + unicode = this.toUnicode[charcode] || charcode; break; case 'Type1': var glyphName = this.differences[charcode] || this.encoding[charcode]; @@ -2031,7 +2077,7 @@ var Font = (function Font() { break; } unicode = this.glyphNameMap[glyphName] || - adaptUnicode(GlyphsUnicode[glyphName] || charcode); + GlyphsUnicode[glyphName] || charcode; break; case 'Type3': var glyphName = this.differences[charcode] || this.encoding[charcode]; @@ -2049,16 +2095,16 @@ var Font = (function Font() { break; } if (!this.hasEncoding) { - unicode = adaptUnicode(charcode); + unicode = this.useToUnicode ? this.toUnicode[charcode] : charcode; break; } - if (this.hasShortCmap) { + if (this.hasShortCmap && false) { var j = Encodings.MacRomanEncoding.indexOf(glyphName); - unicode = j >= 0 && !isSpecialUnicode(j) ? j : + unicode = j >= 0 ? j : this.glyphNameMap[glyphName]; } else { unicode = glyphName in GlyphsUnicode ? - adaptUnicode(GlyphsUnicode[glyphName]) : + GlyphsUnicode[glyphName] : this.glyphNameMap[glyphName]; } break; @@ -2068,12 +2114,8 @@ var Font = (function Font() { } var unicodeChars = this.toUnicode ? this.toUnicode[charcode] : charcode; - if (typeof unicodeChars === 'number') { - unicodeChars = (unicodeChars >= 0x10000) ? - String.fromCharCode(0xD800 | ((unicodeChars - 0x10000) >> 10), - 0xDC00 | (unicodeChars & 0x3FF)) : String.fromCharCode(unicodeChars); - // TODO we probably don't need convert high/low surrogate... keeping for now - } + if (typeof unicodeChars === 'number') + unicodeChars = String.fromCharCode(unicodeChars); return { fontChar: String.fromCharCode(unicode), @@ -2790,22 +2832,13 @@ CFF.prototype = { getOrderedCharStrings: function cff_getOrderedCharStrings(glyphs, properties) { var charstrings = []; - var reverseMapping = {}; - var encoding = properties.baseEncoding; var i, length, glyphName; - for (i = 0, length = encoding.length; i < length; ++i) { - glyphName = encoding[i]; - if (!glyphName || isSpecialUnicode(i)) - continue; - reverseMapping[glyphName] = i; - } - reverseMapping['.notdef'] = 0; var unusedUnicode = kCmapGlyphOffset; for (i = 0, length = glyphs.length; i < length; i++) { var item = glyphs[i]; var glyphName = item.glyph; - var unicode = glyphName in reverseMapping ? - reverseMapping[glyphName] : unusedUnicode++; + var unicode = glyphName in GlyphsUnicode ? + GlyphsUnicode[glyphName] : unusedUnicode++; charstrings.push({ glyph: glyphName, unicode: unicode, @@ -3092,16 +3125,14 @@ var Type2CFF = (function type2CFF() { } var charStrings = this.parseIndex(topDict.CharStrings); - var charset = this.parseCharsets(topDict.charset, - charStrings.length, strings); - var encoding = this.parseEncoding(topDict.Encoding, properties, - strings, charset); var charset, encoding; var isCIDFont = properties.subtype == 'CIDFontType0C'; if (isCIDFont) { - charset = []; - charset.length = charStrings.length; + charset = ['.notdef']; + for (var i = 1, ii = charStrings.length; i < ii; ++i) + charset.push('glyph' + i); + encoding = this.parseCidMap(topDict.charset, charStrings.length); } else { @@ -3170,38 +3201,44 @@ var Type2CFF = (function type2CFF() { var charstrings = []; var unicodeUsed = []; var unassignedUnicodeItems = []; + var inverseEncoding = []; + for (var charcode in encoding) + inverseEncoding[encoding[charcode]] = charcode | 0; for (var i = 0, ii = charsets.length; i < ii; i++) { var glyph = charsets[i]; - var encodingFound = false; - for (var charcode in encoding) { - if (encoding[charcode] == i) { - var code = charcode | 0; - charstrings.push({ - unicode: adaptUnicode(code), - code: code, - gid: i, - glyph: glyph - }); - unicodeUsed[code] = true; - encodingFound = true; - break; - } + if (glyph == '.notdef') { + charstrings.push({ + unicode: 0, + code: 0, + gid: i, + glyph: glyph + }); + continue; } - if (!encodingFound) { + var code = inverseEncoding[i]; + if (!code || isSpecialUnicode(code)) { unassignedUnicodeItems.push(i); + continue; } + charstrings.push({ + unicode: code, + code: code, + gid: i, + glyph: glyph + }); + unicodeUsed[code] = true; } - var nextUnusedUnicode = 0x21; + var nextUnusedUnicode = kCmapGlyphOffset; for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; ++j) { var i = unassignedUnicodeItems[j]; // giving unicode value anyway - while (unicodeUsed[nextUnusedUnicode]) + while (nextUnusedUnicode in unicodeUsed) nextUnusedUnicode++; - var code = nextUnusedUnicode++; + var unicode = nextUnusedUnicode++; charstrings.push({ - unicode: adaptUnicode(code), - code: code, + unicode: unicode, + code: inverseEncoding[i] || 0, gid: i, glyph: charsets[i] }); From a1853185b16a69ac7eb8d22b3b276d467236c0aa Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Mon, 28 Nov 2011 09:25:25 -0500 Subject: [PATCH 35/68] Comments --- src/canvas.js | 9 +++++++-- src/metrics.js | 3 +++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 0107570d9..ab1422758 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -103,6 +103,7 @@ var CanvasGraphics = (function canvasGraphics() { this.ctx.transform(0, -1, -1, 0, cw, ch); break; } + // Scale so that canvas units are the same as PDF user space units this.ctx.scale(cw / mediaBox.width, ch / mediaBox.height); this.textDivs = []; this.textLayerQueue = []; @@ -491,14 +492,18 @@ var CanvasGraphics = (function canvasGraphics() { pushTextDivs: function canvasGraphicsPushTextDivs(text) { var div = document.createElement('div'); var fontSize = this.current.fontSize; - var fontHeight = text.geom.vScale * fontSize; + + // vScale and hScale already contain the scaling to pixel units + // as mozCurrentTransform reflects ctx.scale() changes + // (see beginDrawing()) + var fontHeight = fontSize * text.geom.vScale; + div.dataset.canvasWidth = text.canvasWidth * text.geom.hScale; div.style.fontSize = fontHeight + 'px'; div.style.fontFamily = this.current.font.loadedName || 'sans-serif'; div.style.left = text.geom.x + 'px'; div.style.top = (text.geom.y - fontHeight) + 'px'; div.innerHTML = text.str; - div.dataset.canvasWidth = text.canvasWidth * text.geom.hScale; div.dataset.textLength = text.length; this.textDivs.push(div); }, diff --git a/src/metrics.js b/src/metrics.js index c21b4aed1..e64961aa7 100644 --- a/src/metrics.js +++ b/src/metrics.js @@ -3,6 +3,9 @@ 'use strict'; +// The Metrics object contains glyph widths (in glyph space units). +// As per PDF spec, for most fonts (Type 3 being an exception) a glyph +// space unit corresponds to 1/1000th of text space unit. var Metrics = { 'Courier': 600, 'Courier-Bold': 600, From d6925b13ba3749afd29a1d50db7eb6c2509ae6eb Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Mon, 28 Nov 2011 16:55:09 -0800 Subject: [PATCH 36/68] Adding new errorback and code to display error messages. --- src/core.js | 21 ++++++++++++++++++--- src/worker.js | 21 ++++++++++++++++----- test/driver.js | 8 +++++--- web/viewer.css | 31 +++++++++++++++++++++++++++++++ web/viewer.html | 18 ++++++++++++++++++ web/viewer.js | 35 +++++++++++++++++++++++++++++++---- 6 files changed, 119 insertions(+), 15 deletions(-) diff --git a/src/core.js b/src/core.js index 3549eb906..72601fdf7 100644 --- a/src/core.js +++ b/src/core.js @@ -63,6 +63,10 @@ var Page = (function pagePage() { }; this.xref = xref; this.ref = ref; + + this.ctx = null; + this.callback = null; + this.errorback = null; } constructor.prototype = { @@ -165,8 +169,10 @@ var Page = (function pagePage() { try { self.display(gfx, self.callback); } catch (e) { - if (self.callback) self.callback(e.toString()); - throw e; + if (self.errorback) + self.errorback(e); + else + throw e; } }); }; @@ -303,9 +309,10 @@ var Page = (function pagePage() { } return links; }, - startRendering: function pageStartRendering(ctx, callback) { + startRendering: function pageStartRendering(ctx, callback, errorback) { this.ctx = ctx; this.callback = callback; + this.errorback = errorback; this.startRenderingTime = Date.now(); this.pdf.startRendering(this); @@ -599,6 +606,14 @@ var PDFDoc = (function pdfDoc() { } }.bind(this)); + messageHandler.on('page_error', function pdfDocError(data) { + var page = this.pageCache[data.pageNum]; + if (page.errorback) + page.errorback(data.error) + else + throw data.error; + }, this); + setTimeout(function pdfDocFontReadySetTimeout() { messageHandler.send('doc', this.data); this.workerReadyPromise.resolve(true); diff --git a/src/worker.js b/src/worker.js index 67f1bf658..06b9c7a22 100644 --- a/src/worker.js +++ b/src/worker.js @@ -14,7 +14,6 @@ function MessageHandler(name, comObj) { ah['console_error'] = [function ahConsoleError(data) { console.error.apply(console, data); }]; - comObj.onmessage = function messageHandlerComObjOnMessage(event) { var data = event.data; if (data.action in ah) { @@ -67,7 +66,6 @@ var WorkerMessageHandler = { handler.on('page_request', function wphSetupPageRequest(pageNum) { pageNum = parseInt(pageNum); - var page = pdfDoc.getPage(pageNum); // The following code does quite the same as // Page.prototype.startRendering, but stops at one point and sends the @@ -77,9 +75,22 @@ var WorkerMessageHandler = { var start = Date.now(); var dependency = []; - - // Pre compile the pdf page and fetch the fonts/images. - var IRQueue = page.getIRQueue(handler, dependency); + try { + var page = pdfDoc.getPage(pageNum); + // Pre compile the pdf page and fetch the fonts/images. + var IRQueue = page.getIRQueue(handler, dependency); + } catch(e) { + // Turn the error into an obj that can be serialized + e = { + message: e.message, + stack: e.stack + }; + handler.send('page_error', { + pageNum: pageNum, + error: e + }); + return; + } console.log('page=%d - getIRQueue: time=%dms, len=%d', pageNum, Date.now() - start, IRQueue.fnArray.length); diff --git a/test/driver.js b/test/driver.js index c11cecf56..48ac77e65 100644 --- a/test/driver.js +++ b/test/driver.js @@ -162,9 +162,11 @@ function nextPage(task, loadError) { page.startRendering( ctx, - function nextPageStartRendering(e) { - snapshotCurrentPage(task, (!failure && e) ? - ('render : ' + e) : failure); + function nextPageStartRendering() { + snapshotCurrentPage(task, false); + }, + function errorNextPageStartRendering(e) { + snapshotCurrentPage(task, 'render : ' + e.message); } ); } catch (e) { diff --git a/web/viewer.css b/web/viewer.css index c379e91c4..81458b612 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -252,6 +252,37 @@ canvas { display: none; } +#errorWrapper { + background: none repeat scroll 0 0 #FF5555; + color: white; + left: 0; + position: fixed; + right: 0; + top: 30px; + z-index: 1000; + padding: 3px; +} + +#errorMessageLeft { + float: left; +} + +#errorMessageRight { + float: right; +} + +#errorMoreInfo { + background-color: #FFFFFF; + color: black; + padding: 3px; + margin: 3px; + white-space: pre; +} + +.clearBoth { + clear: both; +} + /* === Printed media overrides === */ @media print { #sidebar { diff --git a/web/viewer.html b/web/viewer.html index e441a9847..153b22e80 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -97,6 +97,24 @@ <span id="info">--</span> </div> + <div id="errorWrapper" hidden='true'> + <div id="errorMessageLeft"> + <span id="errorMessage"></span> + <button id="errorShowMore" onclick="" oncontextmenu="return false;"> + More Information + </button> + <button id="errorShowLess" onclick="" oncontextmenu="return false;" hidden='true'> + Less Information + </button> + </div> + <div id="errorMessageRight"> + <button id="errorClose" oncontextmenu="return false;"> + X + </button> + </div> + <div class="clearBoth"></div> + <div id="errorMoreInfo" hidden='true'></div> + </div> <div id="sidebar"> <div id="sidebarBox"> diff --git a/web/viewer.js b/web/viewer.js index bfb3a4303..00de7feaf 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -181,9 +181,34 @@ var PDFView = { return ''; }, - error: function pdfViewError() { - var loadingIndicator = document.getElementById('loading'); - loadingIndicator.innerHTML = 'Error'; + error: function pdfViewError(message, error) { + var errorWrapper = document.getElementById('errorWrapper'); + errorWrapper.removeAttribute('hidden'); + + var errorMessage = document.getElementById('errorMessage'); + errorMessage.innerHTML = message; + + if (error) { + var errorMoreInfo = document.getElementById('errorMoreInfo'); + var moreInfoButton = document.getElementById('errorShowMore'); + var lessInfoButton = document.getElementById('errorShowLess'); + var closeButton = document.getElementById('errorClose'); + moreInfoButton.onclick = function() { + errorMoreInfo.removeAttribute('hidden'); + moreInfoButton.setAttribute('hidden', 'true'); + lessInfoButton.removeAttribute('hidden'); + }; + lessInfoButton.onclick = function() { + errorMoreInfo.setAttribute('hidden', 'true'); + moreInfoButton.removeAttribute('hidden'); + lessInfoButton.setAttribute('hidden', 'true'); + }; + closeButton.onclick = function() { + errorWrapper.setAttribute('hidden', 'true'); + }; + moreInfoButton.removeAttribute('hidden'); + errorMoreInfo.innerHTML = error.message + '\n' + error.stack; + } }, progress: function pdfViewProgress(level) { @@ -487,7 +512,9 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, this.updateStats); + this.content.startRendering(ctx, this.updateStats, function(e) { + PDFView.error('An error occured while rendering the page.', e); + }); setupLinks(this.content, this.scale); div.setAttribute('data-loaded', true); From e4e864766df1c2252197113378ad0e191665e219 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Mon, 28 Nov 2011 19:47:37 -0600 Subject: [PATCH 37/68] Fix CIDFontType2 large cmap tables --- src/fonts.js | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/fonts.js b/src/fonts.js index fb9bb9f0c..734b38c4a 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -1701,27 +1701,37 @@ var Font = (function Font() { } var glyphs = [], ids = []; - var usedUnicodes = [], unusedUnicode = kCmapGlyphOffset; + var usedUnicodes = []; var cidToGidMap = properties.cidToGidMap; - for (i = 1; i < numGlyphs; i++) { + var unassignedUnicodeItems = []; + for (var i = 1; i < numGlyphs; i++) { var cid = cidToGidMap ? cidToGidMap.indexOf(i) : i; var unicode = this.toUnicode[cid]; if (!unicode || isSpecialUnicode(unicode) || unicode in usedUnicodes) { - // overriding the special special symbols mapping - while (unusedUnicode in usedUnicodes) - unusedUnicode++; - this.toUnicode[cid] = unicode = unusedUnicode++; - if (unusedUnicode >= kCmapGlyphOffset + kSizeOfGlyphArea) { - // overflow of the user defined symblos range - // using symbols that a little bit lower than this range - unusedUnicode = kCmapGlyphOffset - numGlyphs; - } + unassignedUnicodeItems.push(i); + continue; } usedUnicodes[unicode] = true; glyphs.push({ unicode: unicode, code: cid }); ids.push(i); } + // checking if unassigned symbols will fit the user defined symbols + // if those symbols too many, probably they will not be used anyway + if (unassignedUnicodeItems.length <= kSizeOfGlyphArea) { + var unusedUnicode = kCmapGlyphOffset; + for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) { + var i = unassignedUnicodeItems[j]; + var cid = cidToGidMap ? cidToGidMap.indexOf(i) : i; + while (unusedUnicode in usedUnicodes) + unusedUnicode++; + var unicode = unusedUnicode++; + this.toUnicode[cid] = unicode; + usedUnicodes[unicode] = true; + glyphs.push({ unicode: unicode, code: cid }); + ids.push(i); + } + } cmap.data = createCMapTable(glyphs, ids); } else { var cmapTable = readCMapTable(cmap, font); From 88310a09c2470589aa4343d9da9f5c43427a060a Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Mon, 28 Nov 2011 19:49:02 -0600 Subject: [PATCH 38/68] Removing refreshToUnicode --- src/fonts.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/fonts.js b/src/fonts.js index 734b38c4a..9ec87227e 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -1974,9 +1974,6 @@ var Font = (function Font() { } } this.toUnicode = map; - this.refreshToUnicode = function refreshToUnicode() { - this.font_rebuildToUnicode(properties); - }; }, loadCidToUnicode: function font_loadCidToUnicode(properties) { From 683a8f0de8d9155a34f1ba422cc5d12ee4133b9b Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Mon, 28 Nov 2011 21:54:07 -0600 Subject: [PATCH 39/68] Remove indexOf, using reverse map instead --- src/fonts.js | 41 ++++++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/src/fonts.js b/src/fonts.js index 9ec87227e..9aabb3f57 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -1700,12 +1700,19 @@ var Font = (function Font() { tables.push(cmap); } + var cidToGidMap = properties.cidToGidMap || []; + var gidToCidMap = [0]; + for (var j = cidToGidMap.length - 1; j >= 0; j--) { + var gid = cidToGidMap[j]; + if (gid) + gidToCidMap[gid] = j; + } + var glyphs = [], ids = []; var usedUnicodes = []; - var cidToGidMap = properties.cidToGidMap; var unassignedUnicodeItems = []; for (var i = 1; i < numGlyphs; i++) { - var cid = cidToGidMap ? cidToGidMap.indexOf(i) : i; + var cid = gidToCidMap[i] || i; var unicode = this.toUnicode[cid]; if (!unicode || isSpecialUnicode(unicode) || unicode in usedUnicodes) { @@ -1716,21 +1723,21 @@ var Font = (function Font() { glyphs.push({ unicode: unicode, code: cid }); ids.push(i); } - // checking if unassigned symbols will fit the user defined symbols - // if those symbols too many, probably they will not be used anyway - if (unassignedUnicodeItems.length <= kSizeOfGlyphArea) { - var unusedUnicode = kCmapGlyphOffset; - for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) { - var i = unassignedUnicodeItems[j]; - var cid = cidToGidMap ? cidToGidMap.indexOf(i) : i; - while (unusedUnicode in usedUnicodes) - unusedUnicode++; - var unicode = unusedUnicode++; - this.toUnicode[cid] = unicode; - usedUnicodes[unicode] = true; - glyphs.push({ unicode: unicode, code: cid }); - ids.push(i); - } + // trying to fit as many unassigned symbols as we can + // in the range allocated for the user defined symbols + var unusedUnicode = kCmapGlyphOffset; + for (var j = 0, jj = unassignedUnicodeItems.length; j < jj; j++) { + var i = unassignedUnicodeItems[j]; + var cid = gidToCidMap[i] || i; + while (unusedUnicode in usedUnicodes) + unusedUnicode++; + if (unusedUnicode >= kCmapGlyphOffset + kSizeOfGlyphArea) + break; + var unicode = unusedUnicode++; + this.toUnicode[cid] = unicode; + usedUnicodes[unicode] = true; + glyphs.push({ unicode: unicode, code: cid }); + ids.push(i); } cmap.data = createCMapTable(glyphs, ids); } else { From 6dd706c0c387bad95ec5d4976e9220b43ad0aea8 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 29 Nov 2011 09:36:50 -0800 Subject: [PATCH 40/68] Make the error a little smaller. --- web/viewer.css | 1 + 1 file changed, 1 insertion(+) diff --git a/web/viewer.css b/web/viewer.css index 81458b612..ac758f48e 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -261,6 +261,7 @@ canvas { top: 30px; z-index: 1000; padding: 3px; + font-size: 0.8em; } #errorMessageLeft { From b40af3555b2be14311c6d7cf4cc28dc750d72387 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 29 Nov 2011 11:28:05 -0800 Subject: [PATCH 41/68] Display error messages on more problems. --- src/core.js | 14 ++++++---- web/viewer.js | 73 +++++++++++++++++++++++++++++++++++---------------- 2 files changed, 59 insertions(+), 28 deletions(-) diff --git a/src/core.js b/src/core.js index 72601fdf7..8b814f027 100644 --- a/src/core.js +++ b/src/core.js @@ -39,11 +39,15 @@ function getPdf(arg, callback) { if ('error' in params) xhr.onerror = params.error || undefined; - xhr.onreadystatechange = function getPdfOnreadystatechange() { - if (xhr.readyState === 4 && xhr.status === xhr.expected) { - var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse || - xhr.responseArrayBuffer || xhr.response); - callback(data); + xhr.onreadystatechange = function getPdfOnreadystatechange(e) { + if (xhr.readyState === 4) { + if (xhr.status === xhr.expected) { + var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse || + xhr.responseArrayBuffer || xhr.response); + callback(data); + } else { + params.error(e); + } } }; xhr.send(null); diff --git a/web/viewer.js b/web/viewer.js index 221c535ee..066d04829 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -129,7 +129,14 @@ var PDFView = { if (evt.lengthComputable) self.progress(evt.loaded / evt.total); }, - error: self.error + error: function getPdfError(e) { + var loadingIndicator = document.getElementById('loading'); + loadingIndicator.innerHTML = 'Error'; + var moreInfo = { + message: 'Unexpected server response of ' + e.target.status + '.' + }; + self.error('An error occurred while loading the PDF.', moreInfo); + } }, function getPdfLoad(data) { self.loading = true; @@ -181,33 +188,46 @@ var PDFView = { return ''; }, - error: function pdfViewError(message, error) { + /** + * Show the error box. + * @param {String} message A message that is human readable. + * @param {Object} moreInfo (optional) Further information about the error + * that is more technical. Should have a 'message' + * and optionally a 'stack' property. + */ + error: function pdfViewError(message, moreInfo) { var errorWrapper = document.getElementById('errorWrapper'); errorWrapper.removeAttribute('hidden'); var errorMessage = document.getElementById('errorMessage'); errorMessage.innerHTML = message; - if (error) { - var errorMoreInfo = document.getElementById('errorMoreInfo'); - var moreInfoButton = document.getElementById('errorShowMore'); - var lessInfoButton = document.getElementById('errorShowLess'); - var closeButton = document.getElementById('errorClose'); - moreInfoButton.onclick = function() { - errorMoreInfo.removeAttribute('hidden'); - moreInfoButton.setAttribute('hidden', 'true'); - lessInfoButton.removeAttribute('hidden'); - }; - lessInfoButton.onclick = function() { - errorMoreInfo.setAttribute('hidden', 'true'); - moreInfoButton.removeAttribute('hidden'); - lessInfoButton.setAttribute('hidden', 'true'); - }; - closeButton.onclick = function() { - errorWrapper.setAttribute('hidden', 'true'); - }; + var closeButton = document.getElementById('errorClose'); + closeButton.onclick = function() { + errorWrapper.setAttribute('hidden', 'true'); + }; + + var errorMoreInfo = document.getElementById('errorMoreInfo'); + var moreInfoButton = document.getElementById('errorShowMore'); + var lessInfoButton = document.getElementById('errorShowLess'); + moreInfoButton.onclick = function() { + errorMoreInfo.removeAttribute('hidden'); + moreInfoButton.setAttribute('hidden', 'true'); + lessInfoButton.removeAttribute('hidden'); + }; + lessInfoButton.onclick = function() { + errorMoreInfo.setAttribute('hidden', 'true'); moreInfoButton.removeAttribute('hidden'); - errorMoreInfo.innerHTML = error.message + '\n' + error.stack; + lessInfoButton.setAttribute('hidden', 'true'); + }; + moreInfoButton.removeAttribute('hidden'); + lessInfoButton.setAttribute('hidden', 'true'); + errorMoreInfo.innerHTML = 'PDF.JS Build: ' + PDFJS.build + '\n'; + + if (moreInfo) { + errorMoreInfo.innerHTML += 'Message: ' + moreInfo.message; + if (moreInfo.stack) + errorMoreInfo.innerHTML += '\n' + 'Stack: ' + moreInfo.stack; } }, @@ -225,6 +245,9 @@ var PDFView = { }; } + var errorWrapper = document.getElementById('errorWrapper'); + errorWrapper.setAttribute('hidden', 'true'); + var loadingIndicator = document.getElementById('loading'); loadingIndicator.setAttribute('hidden', 'true'); @@ -241,7 +264,11 @@ var PDFView = { while (container.hasChildNodes()) container.removeChild(container.lastChild); - var pdf = new PDFJS.PDFDoc(data); + try { + var pdf = new PDFJS.PDFDoc(data); + } catch (e) { + this.error('An error occurred while reading the PDF.', e); + } var pagesCount = pdf.numPages; document.getElementById('numPages').innerHTML = pagesCount; document.getElementById('pageNumber').max = pagesCount; @@ -533,7 +560,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, this.onAfterDraw(); }).bind(this), function pageViewErrorback(e) { - PDFView.error('An error occured while rendering the page.', e); + PDFView.error('An error occurred while rendering the page.', e); } ); From cddb1063588c5148338892e3c0ba940d13b76f55 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 29 Nov 2011 11:32:01 -0800 Subject: [PATCH 42/68] Fix lints. --- src/core.js | 2 +- src/worker.js | 2 +- web/viewer.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core.js b/src/core.js index 8b814f027..a45030b3f 100644 --- a/src/core.js +++ b/src/core.js @@ -613,7 +613,7 @@ var PDFDoc = (function pdfDoc() { messageHandler.on('page_error', function pdfDocError(data) { var page = this.pageCache[data.pageNum]; if (page.errorback) - page.errorback(data.error) + page.errorback(data.error); else throw data.error; }, this); diff --git a/src/worker.js b/src/worker.js index 06b9c7a22..dc0ab9ead 100644 --- a/src/worker.js +++ b/src/worker.js @@ -79,7 +79,7 @@ var WorkerMessageHandler = { var page = pdfDoc.getPage(pageNum); // Pre compile the pdf page and fetch the fonts/images. var IRQueue = page.getIRQueue(handler, dependency); - } catch(e) { + } catch (e) { // Turn the error into an obj that can be serialized e = { message: e.message, diff --git a/web/viewer.js b/web/viewer.js index 066d04829..f3975c038 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -553,7 +553,7 @@ var PageView = function pageView(container, content, id, pageWidth, pageHeight, ctx.translate(-this.x * scale, -this.y * scale); stats.begin = Date.now(); - this.content.startRendering(ctx, + this.content.startRendering(ctx, (function pageViewDrawCallback() { this.updateStats(); if (this.onAfterDraw) From fe5aa4af3f36f570b7a10160eabb47bec630be4e Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Tue, 29 Nov 2011 14:46:24 -0500 Subject: [PATCH 43/68] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 97db68d36..f3500ae4d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # pdf.js - + ## Overview From 6a747c4353887c0fab14aa95c46853ee44d42818 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Tue, 29 Nov 2011 14:54:32 -0500 Subject: [PATCH 44/68] Created inactive window bugzilla bug --- web/viewer.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/web/viewer.css b/web/viewer.css index 1684900fa..3313ce3cb 100644 --- a/web/viewer.css +++ b/web/viewer.css @@ -247,11 +247,11 @@ canvas { line-height:1.3; } -::selection { background:rgba(0,0,255,0.3); } -::-moz-selection { background:rgba(0,0,255,0.3); } /* TODO: file FF bug to support ::-moz-selection:window-inactive so we can override the opaque grey background when the window is inactive; - see also http://css-tricks.com/9288-window-inactive-styling */ + see https://bugzilla.mozilla.org/show_bug.cgi?id=706209 */ +::selection { background:rgba(0,0,255,0.3); } +::-moz-selection { background:rgba(0,0,255,0.3); } #viewer { margin: 44px 0px 0px; From e2e2240a227f2a838a4fee9481587d668d57747d Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Tue, 29 Nov 2011 16:02:12 -0500 Subject: [PATCH 45/68] Lint lint lint --- src/canvas.js | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 99644eb07..16a870817 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -280,29 +280,28 @@ var CanvasGraphics = (function canvasGraphics() { var textLayer = this.textLayer; if (textLayer) { - var renderTextLayer = function canvasRenderTextLayer() { + var renderTextLayer = function canvasRenderTextLayer() { var textDivs = self.textDivs; for (var i = 0, length = textDivs.length; i < length; ++i) { - if (textDivs[i].dataset.textLength>1) { // avoid div by zero + if (textDivs[i].dataset.textLength > 1) { // avoid div by zero textLayer.appendChild(textDivs[i]); // Adjust div width (via letterSpacing) to match canvas text // Due to the .offsetWidth calls, this is slow textDivs[i].style.letterSpacing = - ((textDivs[i].dataset.canvasWidth - - textDivs[i].offsetWidth)/(textDivs[i].dataset.textLength-1)) - + 'px'; + ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth) / + (textDivs[i].dataset.textLength - 1)) + 'px'; } - } + } } var textLayerQueue = self.textLayerQueue; textLayerQueue.push(renderTextLayer); - + // Lazy textLayer rendering (to prevent UI hangs) // Only render queue if activity has stopped, where "no activity" == // "no beginDrawing() calls in the last N ms" - self.textLayerTimer = setTimeout(function renderTextLayerQueue(){ + self.textLayerTimer = setTimeout(function renderTextLayerQueue() { // Render most recent (==most relevant) layers first - for (var i=textLayerQueue.length-1; i>=0; i--) { + for (var i = textLayerQueue.length - 1; i >= 0; i--) { textLayerQueue.pop().call(); } }, 500); @@ -596,7 +595,7 @@ var CanvasGraphics = (function canvasGraphics() { spaceGlyph = font.charsToGlyphs('i'); // Fallback if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) - spaceGlyph = [ {width:0} ]; + spaceGlyph = [{width: 0}]; geom.spaceWidth = spaceGlyph[0].width; return geom; }, @@ -629,7 +628,7 @@ var CanvasGraphics = (function canvasGraphics() { var textHScale = current.textHScale; var glyphsLength = glyphs.length; var textLayer = this.textLayer; - var text = { str:'', length:0, canvasWidth:0, geom:{}}; + var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; var textSelection = textLayer && !skipTextSelection ? true : false; if (textSelection) { @@ -638,7 +637,7 @@ var CanvasGraphics = (function canvasGraphics() { text.geom = this.getTextGeometry(); ctx.restore(); } - + // Type3 fonts - each glyph is a "mini-PDF" if (font.coded) { ctx.save(); @@ -689,7 +688,7 @@ var CanvasGraphics = (function canvasGraphics() { var charWidth = glyph.width * fontSize * 0.001 + charSpacing; ctx.fillText(char, width, 0); width += charWidth; - + text.str += char === ' ' ? ' ' : char; text.length++; text.canvasWidth += charWidth; @@ -699,7 +698,7 @@ var CanvasGraphics = (function canvasGraphics() { ctx.restore(); } - if (textSelection) + if (textSelection) this.pushTextDivs(text); return text; @@ -712,7 +711,7 @@ var CanvasGraphics = (function canvasGraphics() { var arrLength = arr.length; var textLayer = this.textLayer; var font = current.font; - var text = {str:'', length:0, canvasWidth:0, geom:{}}; + var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; var textSelection = textLayer ? true : false; if (textSelection) { @@ -721,7 +720,7 @@ var CanvasGraphics = (function canvasGraphics() { text.geom = this.getTextGeometry(); ctx.restore(); } - + for (var i = 0; i < arrLength; ++i) { var e = arr[i]; if (isNum(e)) { @@ -731,11 +730,11 @@ var CanvasGraphics = (function canvasGraphics() { if (textSelection) { // Emulate precise spacing via HTML spaces text.canvasWidth += spacingLength; - if (e<0 && text.geom.spaceWidth>0) { // avoid div by zero + if (e < 0 && text.geom.spaceWidth > 0) { // avoid div by zero var numFakeSpaces = Math.round(-e / text.geom.spaceWidth); for (var j = 0; j < numFakeSpaces; ++j) text.str += ' '; - text.length += numFakeSpaces>0 ? 1 : 0; + text.length += numFakeSpaces > 0 ? 1 : 0; } } } else if (isString(e)) { @@ -754,8 +753,8 @@ var CanvasGraphics = (function canvasGraphics() { malformed('TJ array element ' + e + ' is not string or num'); } } - - if (textSelection) + + if (textSelection) this.pushTextDivs(text); }, nextLineShowText: function canvasGraphicsNextLineShowText(text) { From e5d91ab2194addbe4d017a1c9f9c1cd3aeb4a84c Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 29 Nov 2011 14:50:19 -0800 Subject: [PATCH 46/68] Fix invalid arguments error. --- src/core.js | 15 ++------------- src/evaluator.js | 5 +++++ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/src/core.js b/src/core.js index 3549eb906..a3485b3e0 100644 --- a/src/core.js +++ b/src/core.js @@ -558,20 +558,9 @@ var PDFDoc = (function pdfDoc() { var properties = data[4]; if (file) { + // Rewrap the ArrayBuffer in a stream. var fontFileDict = new Dict(); - fontFileDict.map = file.dict.map; - - var fontFile = new Stream(file.bytes, file.start, - file.end - file.start, fontFileDict); - - // Check if this is a FlateStream. Otherwise just use the created - // Stream one. This makes complex_ttf_font.pdf work. - var cmf = file.bytes[0]; - if ((cmf & 0x0f) == 0x08) { - file = new FlateStream(fontFile); - } else { - file = fontFile; - } + file = new Stream(file, 0, file.length, fontFileDict); } // For now, resolve the font object here direclty. The real font diff --git a/src/evaluator.js b/src/evaluator.js index 3e687c72d..b6ef4ddfa 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -155,6 +155,11 @@ var PartialEvaluator = (function partialEvaluator() { font.loadedName = loadedName; var translated = font.translated; + // Convert the file to an ArrayBuffer which will be turned back into + // a Stream in the main thread. + if (translated.file) + translated.file = translated.file.getBytes(); + handler.send('obj', [ loadedName, 'Font', From f0bb73e9e8a758f6ed2130aba7caa8b677f3b0ed Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Tue, 29 Nov 2011 15:47:53 -0800 Subject: [PATCH 47/68] Add test case. --- test/pdfs/protectip.pdf.link | 1 + test/test_manifest.json | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 test/pdfs/protectip.pdf.link diff --git a/test/pdfs/protectip.pdf.link b/test/pdfs/protectip.pdf.link new file mode 100644 index 000000000..1af1bd87b --- /dev/null +++ b/test/pdfs/protectip.pdf.link @@ -0,0 +1 @@ +http://leahy.senate.gov/imo/media/doc/BillText-PROTECTIPAct.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index 87af30659..ef5677f07 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -276,5 +276,12 @@ "link": false, "rounds": 1, "type": "eq" + }, + { "id": "protectip", + "file": "pdfs/protectip.pdf", + "md5": "676e7a7b8f96d04825361832b1838a93", + "link": true, + "rounds": 1, + "type": "eq" } ] From 0414c0711f4b0d20a6680cbf3e5dc02a6e1d7bb0 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Tue, 29 Nov 2011 22:06:00 -0600 Subject: [PATCH 48/68] Fixing base encoding presence detection; character width scale --- src/canvas.js | 14 ++++++++------ src/evaluator.js | 2 ++ src/fonts.js | 7 ++++++- src/glyphlist.js | 3 ++- 4 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 587357980..f16313db2 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -537,13 +537,14 @@ var CanvasGraphics = (function canvasGraphics() { var charSpacing = current.charSpacing; var wordSpacing = current.wordSpacing; var textHScale = current.textHScale; + var fontMatrix = font.fontMatrix || IDENTITY_MATRIX; + var textHScale2 = textHScale * fontMatrix[0]; var glyphsLength = glyphs.length; if (font.coded) { ctx.save(); ctx.transform.apply(ctx, current.textMatrix); ctx.translate(current.x, current.y); - var fontMatrix = font.fontMatrix || IDENTITY_MATRIX; ctx.scale(1 / textHScale, 1); for (var i = 0; i < glyphsLength; ++i) { @@ -564,7 +565,7 @@ var CanvasGraphics = (function canvasGraphics() { var width = transformed[0] * fontSize + charSpacing; ctx.translate(width, 0); - current.x += width; + current.x += width * textHScale2; } ctx.restore(); @@ -573,7 +574,7 @@ var CanvasGraphics = (function canvasGraphics() { ctx.transform.apply(ctx, current.textMatrix); ctx.scale(1, -1); ctx.translate(current.x, -1 * current.y); - ctx.transform.apply(ctx, font.fontMatrix || IDENTITY_MATRIX); + ctx.transform.apply(ctx, fontMatrix); ctx.scale(1 / textHScale, 1); @@ -592,7 +593,7 @@ var CanvasGraphics = (function canvasGraphics() { // TODO actual characters can be extracted from the glyph.unicode } - current.x += width; + current.x += width * textHScale2; ctx.restore(); } @@ -602,12 +603,13 @@ var CanvasGraphics = (function canvasGraphics() { var ctx = this.ctx; var current = this.current; var fontSize = current.fontSize; - var textHScale = current.textHScale; + var textHScale2 = current.textHScale * + (current.font.fontMatrix || IDENTITY_MATRIX)[0]; var arrLength = arr.length; for (var i = 0; i < arrLength; ++i) { var e = arr[i]; if (isNum(e)) { - current.x -= e * 0.001 * fontSize * textHScale; + current.x -= e * 0.001 * fontSize * textHScale2; } else if (isString(e)) { this.showText(e); } else { diff --git a/src/evaluator.js b/src/evaluator.js index b6ef4ddfa..954c3bec3 100644 --- a/src/evaluator.js +++ b/src/evaluator.js @@ -498,6 +498,8 @@ var PartialEvaluator = (function partialEvaluator() { var baseName = encoding.get('BaseEncoding'); if (baseName) baseEncoding = Encodings[baseName.name]; + else + hasEncoding = false; // base encoding was not provided // Load the differences between the base and original if (encoding.has('Differences')) { diff --git a/src/fonts.js b/src/fonts.js index 9aabb3f57..2e95a7c94 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -764,6 +764,7 @@ var Font = (function Font() { this.hasEncoding = properties.hasEncoding; this.fontMatrix = properties.fontMatrix; + this.widthMultiplier = 1.0; if (properties.type == 'Type3') return; @@ -826,6 +827,8 @@ var Font = (function Font() { this.data = data; this.fontMatrix = properties.fontMatrix; + this.widthMultiplier = !properties.fontMatrix ? 1.0 : + 1.0 / properties.fontMatrix[0]; this.encoding = properties.baseEncoding; this.hasShortCmap = properties.hasShortCmap; this.loadedName = getUniqueName(); @@ -2131,10 +2134,12 @@ var Font = (function Font() { if (typeof unicodeChars === 'number') unicodeChars = String.fromCharCode(unicodeChars); + width = (isNum(width) ? width : this.defaultWidth) * this.widthMultiplier; + return { fontChar: String.fromCharCode(unicode), unicode: unicodeChars, - width: isNum(width) ? width : this.defaultWidth, + width: width, codeIRQueue: codeIRQueue }; }, diff --git a/src/glyphlist.js b/src/glyphlist.js index 5691f8546..01b94442a 100644 --- a/src/glyphlist.js +++ b/src/glyphlist.js @@ -4287,6 +4287,7 @@ var GlyphsUnicode = { zretroflexhook: 0x0290, zstroke: 0x01B6, zuhiragana: 0x305A, - zukatakana: 0x30BA + zukatakana: 0x30BA, + '.notdef': 0x0000 }; From 73bf5d7b651f6c1213321818e84986738d6f013d Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Tue, 29 Nov 2011 22:22:30 -0600 Subject: [PATCH 49/68] Add paperine test --- test/pdfs/piperine.pdf.link | 1 + test/test_manifest.json | 7 +++++++ 2 files changed, 8 insertions(+) create mode 100644 test/pdfs/piperine.pdf.link diff --git a/test/pdfs/piperine.pdf.link b/test/pdfs/piperine.pdf.link new file mode 100644 index 000000000..0d38690ee --- /dev/null +++ b/test/pdfs/piperine.pdf.link @@ -0,0 +1 @@ +http://www.erowid.org/archive/rhodium/chemistry/3base/piperonal.pepper/piperine.pepper/465e03piperine.pdf diff --git a/test/test_manifest.json b/test/test_manifest.json index ef5677f07..dd861c9f2 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -283,5 +283,12 @@ "link": true, "rounds": 1, "type": "eq" + }, + { "id": "piperine", + "file": "pdfs/piperine.pdf", + "md5": "603ca43dc5732dbba1579f122958c0c2", + "link": true, + "rounds": 1, + "type": "eq" } ] From 6fe0594d9386e7ca0981935c0cc7fdcb9508d4bf Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Wed, 30 Nov 2011 09:42:52 -0500 Subject: [PATCH 50/68] fixing ref so that it passes manifest tests --- extensions/firefox/install.rdf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/firefox/install.rdf b/extensions/firefox/install.rdf index 952d55fbf..7bf7b8037 100644 --- a/extensions/firefox/install.rdf +++ b/extensions/firefox/install.rdf @@ -12,7 +12,7 @@ <Description> <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id> <em:minVersion>6.0</em:minVersion> - <em:maxVersion>11.0.*</em:maxVersion> + <em:maxVersion>11.0a1</em:maxVersion> </Description> </em:targetApplication> <em:bootstrap>true</em:bootstrap> @@ -20,5 +20,6 @@ <em:creator>Vivien Nicolas</em:creator> <em:description>pdf.js uri loader</em:description> <em:homepageURL>https://github.com/mozilla/pdf.js/</em:homepageURL> + <em:type>2</em:type> </Description> </RDF> From 8396406475ad1ef41b9fc54ec955f7c751a049d6 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Wed, 30 Nov 2011 10:31:10 -0500 Subject: [PATCH 51/68] v0.1.0 --- extensions/firefox/install.rdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/firefox/install.rdf b/extensions/firefox/install.rdf index 7bf7b8037..8b793c525 100644 --- a/extensions/firefox/install.rdf +++ b/extensions/firefox/install.rdf @@ -6,7 +6,7 @@ <Description about="urn:mozilla:install-manifest"> <em:id>uriloader@pdf.js</em:id> <em:name>pdf.js</em:name> - <em:version>0.1</em:version> + <em:version>0.1.0</em:version> <em:iconURL>chrome://pdf.js/skin/logo.png</em:iconURL> <em:targetApplication> <Description> From 594e5daa7c9f819cd960fb43094177fd90246943 Mon Sep 17 00:00:00 2001 From: Julian Viereck <julian.viereck@gmail.com> Date: Thu, 1 Dec 2011 00:02:30 +0100 Subject: [PATCH 52/68] Only check execution time on some commands --- src/canvas.js | 42 ++++++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index f16313db2..31792dfc4 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -195,6 +195,35 @@ var CanvasGraphics = (function canvasGraphics() { var EO_CLIP = {}; constructor.prototype = { + slowCommands: { + 'stroke': true, + 'closeStroke': true, + 'fill': true, + 'eoFill': true, + 'fillStroke': true, + 'eoFillStroke': true, + 'closeFillStroke': true, + 'closeEOFillStroke': true, + 'showText': true, + 'showSpacedText': true, + 'setStrokeColorSpace': true, + 'setFillColorSpace': true, + 'setStrokeColor': true, + 'setStrokeColorN': true, + 'setFillColor': true, + 'setFillColorN_IR': true, + 'setStrokeGray': true, + 'setFillGray': true, + 'setStrokeRGBColor': true, + 'setFillRGBColor': true, + 'setStrokeCMYKColor': true, + 'setFillCMYKColor': true, + 'paintJpegXObject': true, + 'paintImageXObject': true, + 'paintImageMaskXObject': true, + 'shadingFill': true + }, + beginDrawing: function canvasGraphicsBeginDrawing(mediaBox) { var cw = this.ctx.canvas.width, ch = this.ctx.canvas.height; this.ctx.save(); @@ -228,13 +257,17 @@ var CanvasGraphics = (function canvasGraphics() { } var executionEndIdx; - var startTime = Date.now(); + var endTime = Date.now() + kExecutionTime; var objs = this.objs; + var fnName; + var slowCommands = this.slowCommands; while (true) { - if (fnArray[i] !== 'dependency') { - this[fnArray[i]].apply(this, argsArray[i]); + fnName = fnArray[i]; + + if (fnName !== 'dependency') { + this[fnName].apply(this, argsArray[i]); } else { var deps = argsArray[i]; for (var n = 0, nn = deps.length; n < nn; n++) { @@ -248,6 +281,7 @@ var CanvasGraphics = (function canvasGraphics() { } } } + i++; // If the entire IRQueue was executed, stop as were done. @@ -258,7 +292,7 @@ var CanvasGraphics = (function canvasGraphics() { // If the execution took longer then a certain amount of time, shedule // to continue exeution after a short delay. // However, this is only possible if a 'continueCallback' is passed in. - if (continueCallback && (Date.now() - startTime) > kExecutionTime) { + if (continueCallback && slowCommands[fnName] && Date.now() > endTime) { setTimeout(continueCallback, 0); return i; } From 66eda9b36b1f6220dfb6296cfa06798b1723aa88 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Wed, 30 Nov 2011 18:54:04 -0600 Subject: [PATCH 53/68] replace isName in the viewer.js --- web/viewer.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/web/viewer.js b/web/viewer.js index c8b830431..70411776e 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -168,7 +168,8 @@ var PDFView = { (destRef + 1); if (pageNumber) { var pdfOpenParams = '#page=' + pageNumber; - if (isName(dest[1], 'XYZ')) { + var destKind = dest[1]; + if ('name' in destKind && destKind.name == 'XYZ') { var scale = (dest[4] || this.currentScale); pdfOpenParams += '&zoom=' + (scale * 100); if (dest[2] || dest[3]) { From c06697732fb5c34887f14e4a559667ad9ceacd5d Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Wed, 30 Nov 2011 19:04:45 -0600 Subject: [PATCH 54/68] Avoiding pageRefMap is not defined in the getDestinationHash() --- web/viewer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index c8b830431..2e8ce0df6 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -238,10 +238,10 @@ var PDFView = { pagesRefMap[pageRef.num + ' ' + pageRef.gen + ' R'] = i; } - this.setScale(scale || kDefaultScale, true); - this.pagesRefMap = pagesRefMap; this.destinations = pdf.catalog.destinations; + this.setScale(scale || kDefaultScale, true); + if (pdf.catalog.documentOutline) { this.outline = new DocumentOutlineView(pdf.catalog.documentOutline); var outlineSwitchButton = document.getElementById('outlineSwitch'); From 3ae06c96ade5821f677f59f3686eaa1e0f3e063c Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Thu, 1 Dec 2011 09:11:33 -0800 Subject: [PATCH 55/68] Address Yury's comments. --- src/core.js | 2 +- src/worker.js | 3 ++- web/viewer.html | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/core.js b/src/core.js index a45030b3f..f2977ecd6 100644 --- a/src/core.js +++ b/src/core.js @@ -45,7 +45,7 @@ function getPdf(arg, callback) { var data = (xhr.mozResponseArrayBuffer || xhr.mozResponse || xhr.responseArrayBuffer || xhr.response); callback(data); - } else { + } else if (params.error) { params.error(e); } } diff --git a/src/worker.js b/src/worker.js index dc0ab9ead..8e4c14fbc 100644 --- a/src/worker.js +++ b/src/worker.js @@ -75,10 +75,11 @@ var WorkerMessageHandler = { var start = Date.now(); var dependency = []; + var IRQueue = null; try { var page = pdfDoc.getPage(pageNum); // Pre compile the pdf page and fetch the fonts/images. - var IRQueue = page.getIRQueue(handler, dependency); + IRQueue = page.getIRQueue(handler, dependency); } catch (e) { // Turn the error into an obj that can be serialized e = { diff --git a/web/viewer.html b/web/viewer.html index 153b22e80..ffd4327a7 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -109,7 +109,7 @@ </div> <div id="errorMessageRight"> <button id="errorClose" oncontextmenu="return false;"> - X + Close </button> </div> <div class="clearBoth"></div> From 705356fa41ef226844ab0150059655d59e9d41b4 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Thu, 1 Dec 2011 14:11:17 -0500 Subject: [PATCH 56/68] Addressing comments by @vingtetun --- src/canvas.js | 69 +++++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 32 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 1e8febea8..b457eb4ff 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -275,37 +275,38 @@ var CanvasGraphics = (function canvasGraphics() { }, endDrawing: function canvasGraphicsEndDrawing() { - var self = this; this.ctx.restore(); var textLayer = this.textLayer; - if (textLayer) { - var renderTextLayer = function canvasRenderTextLayer() { - var textDivs = self.textDivs; - for (var i = 0, length = textDivs.length; i < length; ++i) { - if (textDivs[i].dataset.textLength > 1) { // avoid div by zero - textLayer.appendChild(textDivs[i]); - // Adjust div width (via letterSpacing) to match canvas text - // Due to the .offsetWidth calls, this is slow - textDivs[i].style.letterSpacing = - ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth) / - (textDivs[i].dataset.textLength - 1)) + 'px'; - } + if (!textLayer) + return; + + var self = this; + var renderTextLayer = function canvasRenderTextLayer() { + var textDivs = self.textDivs; + for (var i = 0, length = textDivs.length; i < length; ++i) { + if (textDivs[i].dataset.textLength > 1) { // avoid div by zero + textLayer.appendChild(textDivs[i]); + // Adjust div width (via letterSpacing) to match canvas text + // Due to the .offsetWidth calls, this is slow + textDivs[i].style.letterSpacing = + ((textDivs[i].dataset.canvasWidth - textDivs[i].offsetWidth) / + (textDivs[i].dataset.textLength - 1)) + 'px'; } } - var textLayerQueue = self.textLayerQueue; - textLayerQueue.push(renderTextLayer); - - // Lazy textLayer rendering (to prevent UI hangs) - // Only render queue if activity has stopped, where "no activity" == - // "no beginDrawing() calls in the last N ms" - self.textLayerTimer = setTimeout(function renderTextLayerQueue() { - // Render most recent (==most relevant) layers first - for (var i = textLayerQueue.length - 1; i >= 0; i--) { - textLayerQueue.pop().call(); - } - }, 500); } + var textLayerQueue = this.textLayerQueue; + textLayerQueue.push(renderTextLayer); + + // Lazy textLayer rendering (to prevent UI hangs) + // Only render queue if activity has stopped, where "no activity" == + // "no beginDrawing() calls in the last N ms" + this.textLayerTimer = setTimeout(function renderTextLayerQueue() { + // Render most recent (==most relevant) layers first + for (var i = textLayerQueue.length - 1; i >= 0; i--) { + textLayerQueue.pop().call(); + } + }, 500); }, // Graphics state @@ -577,28 +578,32 @@ var CanvasGraphics = (function canvasGraphics() { ctx.scale(1 / textHScale, 1); }, getTextGeometry: function canvasGetTextGeometry() { - var geom = {}; + var geometry = {}; var ctx = this.ctx; var font = this.current.font; var ctxMatrix = ctx.mozCurrentTransform; if (ctxMatrix) { var bl = Util.applyTransform([0, 0], ctxMatrix); var tr = Util.applyTransform([1, 1], ctxMatrix); - geom.x = bl[0]; - geom.y = bl[1]; - geom.hScale = tr[0] - bl[0]; - geom.vScale = tr[1] - bl[1]; + geometry.x = bl[0]; + geometry.y = bl[1]; + geometry.hScale = tr[0] - bl[0]; + geometry.vScale = tr[1] - bl[1]; } var spaceGlyph = font.charsToGlyphs(' '); + // Hack (sometimes space is not encoded) if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) spaceGlyph = font.charsToGlyphs('i'); + // Fallback if (spaceGlyph.length === 0 || spaceGlyph[0].width === 0) spaceGlyph = [{width: 0}]; - geom.spaceWidth = spaceGlyph[0].width; - return geom; + + geometry.spaceWidth = spaceGlyph[0].width; + return geometry; }, + pushTextDivs: function canvasGraphicsPushTextDivs(text) { var div = document.createElement('div'); var fontSize = this.current.fontSize; From bb6e5c6e00d2fc94fc02e23de91182b0271ac0d9 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Thu, 1 Dec 2011 20:56:26 -0600 Subject: [PATCH 57/68] (#840) fix font stretching and overlapping characters encoding --- src/canvas.js | 4 ++-- src/fonts.js | 16 ++++++++++++---- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index b457eb4ff..0913b582a 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -575,7 +575,7 @@ var CanvasGraphics = (function canvasGraphics() { ctx.scale(1, -1); ctx.translate(current.x, -1 * current.y); ctx.transform.apply(ctx, fontMatrix); - ctx.scale(1 / textHScale, 1); + ctx.scale(textHScale, 1); }, getTextGeometry: function canvasGetTextGeometry() { var geometry = {}; @@ -651,7 +651,7 @@ var CanvasGraphics = (function canvasGraphics() { ctx.transform.apply(ctx, current.textMatrix); ctx.translate(current.x, current.y); - ctx.scale(1 / textHScale, 1); + ctx.scale(textHScale, 1); for (var i = 0; i < glyphsLength; ++i) { var glyph = glyphs[i]; diff --git a/src/fonts.js b/src/fonts.js index 2e95a7c94..672739ea4 100644 --- a/src/fonts.js +++ b/src/fonts.js @@ -1705,10 +1705,18 @@ var Font = (function Font() { var cidToGidMap = properties.cidToGidMap || []; var gidToCidMap = [0]; - for (var j = cidToGidMap.length - 1; j >= 0; j--) { - var gid = cidToGidMap[j]; - if (gid) - gidToCidMap[gid] = j; + if (cidToGidMap.length > 0) { + for (var j = cidToGidMap.length - 1; j >= 0; j--) { + var gid = cidToGidMap[j]; + if (gid) + gidToCidMap[gid] = j; + } + // filling the gaps using CID above the CIDs currently used in font + var nextCid = cidToGidMap.length; + for (var i = 1; i < numGlyphs; i++) { + if (!gidToCidMap[i]) + gidToCidMap[i] = nextCid++; + } } var glyphs = [], ids = []; From 05c1f68d6847c0ea8bf48828e4c777f71530b21b Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Fri, 2 Dec 2011 06:55:04 -0600 Subject: [PATCH 58/68] Add PDF from the #840 to the reference tests --- test/pdfs/.gitignore | 1 + test/pdfs/issue840.pdf | Bin 0 -> 152333 bytes test/test_manifest.json | 6 ++++++ 3 files changed, 7 insertions(+) create mode 100644 test/pdfs/issue840.pdf diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index a757acf34..325987de6 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -16,3 +16,4 @@ !alphatrans.pdf !devicen.pdf !cmykjpeg.pdf +!issue840.pdf diff --git a/test/pdfs/issue840.pdf b/test/pdfs/issue840.pdf new file mode 100644 index 0000000000000000000000000000000000000000..6501a8c957266b689eaa49ad5af448c3ecc2d54a GIT binary patch literal 152333 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%0D`z5Itv^# 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�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 M_`|>c$B*y+A4ijA?f?J) literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index dd861c9f2..bfa131d9a 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -290,5 +290,11 @@ "link": true, "rounds": 1, "type": "eq" + }, + { "id": "issue840", + "file": "pdfs/issue840.pdf", + "md5": "20d88011dd7e3c4fb5274979094dab93", + "rounds": 1, + "type": "eq" } ] From 7d57f5d2ebf7fdd864b9d160f5ea5e75fcee6815 Mon Sep 17 00:00:00 2001 From: Brendan Dahl <brendan.dahl@gmail.com> Date: Fri, 2 Dec 2011 08:58:40 -0800 Subject: [PATCH 59/68] Address Yury's comment 2. --- web/viewer.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/viewer.js b/web/viewer.js index f3975c038..2ccb155c2 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -263,9 +263,10 @@ var PDFView = { var container = document.getElementById('viewer'); while (container.hasChildNodes()) container.removeChild(container.lastChild); - + + var pdf; try { - var pdf = new PDFJS.PDFDoc(data); + pdf = new PDFJS.PDFDoc(data); } catch (e) { this.error('An error occurred while reading the PDF.', e); } From 0f7f80ee6ea7ad309492a2c65bb2dedf491beab2 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Fri, 2 Dec 2011 15:31:29 -0600 Subject: [PATCH 60/68] If readXRefStream or readXRefTable fails, fallback to object indexing (#828) --- src/obj.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/obj.js b/src/obj.js index 7aebb732a..9544bea60 100644 --- a/src/obj.js +++ b/src/obj.js @@ -518,20 +518,25 @@ var XRef = (function xRefXRef() { readXRef: function readXref(startXRef) { var stream = this.stream; stream.pos = startXRef; - var parser = new Parser(new Lexer(stream), true); - var obj = parser.getObj(); - // parse an old-style xref table - if (isCmd(obj, 'xref')) - return this.readXRefTable(parser); - // parse an xref stream - if (isInt(obj)) { - if (!isInt(parser.getObj()) || - !isCmd(parser.getObj(), 'obj') || - !isStream(obj = parser.getObj())) { - error('Invalid XRef stream'); + try { + var parser = new Parser(new Lexer(stream), true); + var obj = parser.getObj(); + // parse an old-style xref table + if (isCmd(obj, 'xref')) + return this.readXRefTable(parser); + // parse an xref stream + if (isInt(obj)) { + if (!isInt(parser.getObj()) || + !isCmd(parser.getObj(), 'obj') || + !isStream(obj = parser.getObj())) { + error('Invalid XRef stream'); + } + return this.readXRefStream(obj); } - return this.readXRefStream(obj); + } catch(e) { + log('Reading of the xref table/stream failed: ' + e); } + warn('Indexing all PDF objects'); return this.indexObjects(); }, getEntry: function xRefGetEntry(i) { From 01a96fdddf6f979b47fd04ad431e0fdf224478b8 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Fri, 2 Dec 2011 15:35:18 -0600 Subject: [PATCH 61/68] Fixing lint errors; extra empty lines --- src/obj.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/obj.js b/src/obj.js index 9544bea60..474b54336 100644 --- a/src/obj.js +++ b/src/obj.js @@ -518,12 +518,15 @@ var XRef = (function xRefXRef() { readXRef: function readXref(startXRef) { var stream = this.stream; stream.pos = startXRef; + try { var parser = new Parser(new Lexer(stream), true); var obj = parser.getObj(); + // parse an old-style xref table if (isCmd(obj, 'xref')) return this.readXRefTable(parser); + // parse an xref stream if (isInt(obj)) { if (!isInt(parser.getObj()) || @@ -533,9 +536,10 @@ var XRef = (function xRefXRef() { } return this.readXRefStream(obj); } - } catch(e) { + } catch (e) { log('Reading of the xref table/stream failed: ' + e); } + warn('Indexing all PDF objects'); return this.indexObjects(); }, From 00d120470566843c88f8a9dc70b0122c7104e19f Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Fri, 2 Dec 2011 16:52:31 -0600 Subject: [PATCH 62/68] Suppress invisible text (#799) --- src/canvas.js | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 0913b582a..6e33475d7 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -23,6 +23,7 @@ var CanvasExtraState = (function canvasExtraState() { this.charSpacing = 0; this.wordSpacing = 0; this.textHScale = 1; + this.textRenderingMode = 0; // Color spaces this.fillColorSpace = new DeviceGrayCS(); this.fillColorSpaceObj = null; @@ -543,7 +544,9 @@ var CanvasGraphics = (function canvasGraphics() { this.ctx.font = rule; }, setTextRenderingMode: function canvasGraphicsSetTextRenderingMode(mode) { - TODO('text rendering mode: ' + mode); + if (mode != 0 && mode != 3) + TODO('unsupported text rendering mode: ' + mode); + this.current.textRenderingMode = mode; }, setTextRise: function canvasGraphicsSetTextRise(rise) { TODO('text rise: ' + rise); @@ -637,6 +640,7 @@ var CanvasGraphics = (function canvasGraphics() { var textLayer = this.textLayer; var text = {str: '', length: 0, canvasWidth: 0, geom: {}}; var textSelection = textLayer && !skipTextSelection ? true : false; + var textRenderingMode = current.textRenderingMode; if (textSelection) { ctx.save(); @@ -693,7 +697,15 @@ var CanvasGraphics = (function canvasGraphics() { var char = glyph.fontChar; var charWidth = glyph.width * fontSize * 0.001 + charSpacing; - ctx.fillText(char, width, 0); + + switch (textRenderingMode) { + default: // unsupported rendering mode + case 0: // fill + ctx.fillText(char, width, 0); + break; + case 3: // invisible + } + width += charWidth; text.str += glyph.unicode === ' ' ? ' ' : glyph.unicode; From 2719e8eadc007cdd5d6eb2b90a9db52a85741e57 Mon Sep 17 00:00:00 2001 From: notmasteryet <async.processingjs@yahoo.com> Date: Fri, 2 Dec 2011 22:30:31 -0600 Subject: [PATCH 63/68] add stroke and other text rendering modes --- src/canvas.js | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/src/canvas.js b/src/canvas.js index 6e33475d7..6eb066dba 100644 --- a/src/canvas.js +++ b/src/canvas.js @@ -6,6 +6,17 @@ // <canvas> contexts store most of the state we need natively. // However, PDF needs a bit more state, which we store here. +var TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7 +}; + var CanvasExtraState = (function canvasExtraState() { function constructor(old) { // Are soft masks and alpha values shapes or opacities? @@ -23,7 +34,7 @@ var CanvasExtraState = (function canvasExtraState() { this.charSpacing = 0; this.wordSpacing = 0; this.textHScale = 1; - this.textRenderingMode = 0; + this.textRenderingMode = TextRenderingMode.FILL; // Color spaces this.fillColorSpace = new DeviceGrayCS(); this.fillColorSpaceObj = null; @@ -544,7 +555,7 @@ var CanvasGraphics = (function canvasGraphics() { this.ctx.font = rule; }, setTextRenderingMode: function canvasGraphicsSetTextRenderingMode(mode) { - if (mode != 0 && mode != 3) + if (mode >= TextRenderingMode.FILL_ADD_TO_PATH) TODO('unsupported text rendering mode: ' + mode); this.current.textRenderingMode = mode; }, @@ -699,11 +710,22 @@ var CanvasGraphics = (function canvasGraphics() { var charWidth = glyph.width * fontSize * 0.001 + charSpacing; switch (textRenderingMode) { - default: // unsupported rendering mode - case 0: // fill + default: // other unsupported rendering modes + case TextRenderingMode.FILL: + case TextRenderingMode.FILL_ADD_TO_PATH: ctx.fillText(char, width, 0); break; - case 3: // invisible + case TextRenderingMode.STROKE: + case TextRenderingMode.STROKE_ADD_TO_PATH: + ctx.strokeText(char, width, 0); + break; + case TextRenderingMode.FILL_STROKE: + case TextRenderingMode.FILL_STROKE_ADD_TO_PATH: + ctx.fillText(char, width, 0); + ctx.strokeText(char, width, 0); + break; + case TextRenderingMode.INVISIBLE: + break; } width += charWidth; From d2303493fe1a2376d5484c195609a2bef79e14ad Mon Sep 17 00:00:00 2001 From: Kalervo Kujala <kkujala@com> Date: Sun, 4 Dec 2011 21:22:08 +0200 Subject: [PATCH 64/68] Fix few early returns in parser.js. --- src/parser.js | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/src/parser.js b/src/parser.js index 93a3f21b5..036191677 100644 --- a/src/parser.js +++ b/src/parser.js @@ -225,7 +225,8 @@ var Parser = (function parserParser() { return new PredictorStream(new FlateStream(stream), params); } return new FlateStream(stream); - } else if (name == 'LZWDecode' || name == 'LZW') { + } + if (name == 'LZWDecode' || name == 'LZW') { var earlyChange = 1; if (params) { if (params.has('EarlyChange')) @@ -234,18 +235,21 @@ var Parser = (function parserParser() { new LZWStream(stream, earlyChange), params); } return new LZWStream(stream, earlyChange); - } else if (name == 'DCTDecode' || name == 'DCT') { + } + if (name == 'DCTDecode' || name == 'DCT') { var bytes = stream.getBytes(length); return new JpegStream(bytes, stream.dict, this.xref); - } else if (name == 'ASCII85Decode' || name == 'A85') { - return new Ascii85Stream(stream); - } else if (name == 'ASCIIHexDecode' || name == 'AHx') { - return new AsciiHexStream(stream); - } else if (name == 'CCITTFaxDecode' || name == 'CCF') { - return new CCITTFaxStream(stream, params); - } else { - TODO('filter "' + name + '" not supported yet'); } + if (name == 'ASCII85Decode' || name == 'A85') { + return new Ascii85Stream(stream); + } + if (name == 'ASCIIHexDecode' || name == 'AHx') { + return new AsciiHexStream(stream); + } + if (name == 'CCITTFaxDecode' || name == 'CCF') { + return new CCITTFaxStream(stream, params); + } + TODO('filter "' + name + '" not supported yet'); return stream; } }; From 7116ce0b5327f4b9d2c8e365eb469a8453e7523d Mon Sep 17 00:00:00 2001 From: Kalervo Kujala <kkujala@com> Date: Sun, 4 Dec 2011 22:22:39 +0200 Subject: [PATCH 65/68] Use constants for radial and axial types. --- src/pattern.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/pattern.js b/src/pattern.js index 72d13d896..c6bbc9983 100644 --- a/src/pattern.js +++ b/src/pattern.js @@ -3,6 +3,9 @@ 'use strict'; +var AXIAL_PATTERN_TYPE = 2; +var RADIAL_PATTERN_TYPE = 3; + var Pattern = (function patternPattern() { // Constructor should define this.getPattern function constructor() { @@ -28,9 +31,9 @@ var Pattern = (function patternPattern() { var type = dict.get('ShadingType'); switch (type) { - case 2: - case 3: - // both radial and axial shadings are handled by RadialAxial shading + case AXIAL_PATTERN_TYPE: + case RADIAL_PATTERN_TYPE: + // Both radial and axial shadings are handled by RadialAxial shading. return new Shadings.RadialAxial(dict, matrix, xref, res, ctx); default: return new Shadings.Dummy(); @@ -117,9 +120,9 @@ Shadings.RadialAxial = (function radialAxialShading() { } var grad; - if (type == 2) + if (type == AXIAL_PATTERN_TYPE) grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); - else if (type == 3) + else if (type == RADIAL_PATTERN_TYPE) grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); for (var i = 0, ii = colorStops.length; i < ii; ++i) { @@ -133,12 +136,12 @@ Shadings.RadialAxial = (function radialAxialShading() { getIR: function radialAxialShadingGetIR() { var coordsArr = this.coordsArr; var type = this.shadingType; - if (type == 2) { + if (type == AXIAL_PATTERN_TYPE) { var p0 = [coordsArr[0], coordsArr[1]]; var p1 = [coordsArr[2], coordsArr[3]]; var r0 = null; var r1 = null; - } else if (type == 3) { + } else if (type == RADIAL_PATTERN_TYPE) { var p0 = [coordsArr[0], coordsArr[1]]; var p1 = [coordsArr[3], coordsArr[4]]; var r0 = coordsArr[2]; From cca0306789afc294c648f05552e57bb6b4a9868a Mon Sep 17 00:00:00 2001 From: Kalervo Kujala <kkujala@com> Date: Mon, 5 Dec 2011 00:38:45 +0200 Subject: [PATCH 66/68] Use object-enumeration for pattern type. --- src/pattern.js | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/pattern.js b/src/pattern.js index c6bbc9983..9e2dca17a 100644 --- a/src/pattern.js +++ b/src/pattern.js @@ -3,8 +3,10 @@ 'use strict'; -var AXIAL_PATTERN_TYPE = 2; -var RADIAL_PATTERN_TYPE = 3; +var PatternType = { + AXIAL: 2, + RADIAL: 3 +}; var Pattern = (function patternPattern() { // Constructor should define this.getPattern @@ -31,8 +33,8 @@ var Pattern = (function patternPattern() { var type = dict.get('ShadingType'); switch (type) { - case AXIAL_PATTERN_TYPE: - case RADIAL_PATTERN_TYPE: + case PatternType.AXIAL: + case PatternType.RADIAL: // Both radial and axial shadings are handled by RadialAxial shading. return new Shadings.RadialAxial(dict, matrix, xref, res, ctx); default: @@ -120,9 +122,9 @@ Shadings.RadialAxial = (function radialAxialShading() { } var grad; - if (type == AXIAL_PATTERN_TYPE) + if (type == PatternType.AXIAL) grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); - else if (type == RADIAL_PATTERN_TYPE) + else if (type == PatternType.RADIAL) grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); for (var i = 0, ii = colorStops.length; i < ii; ++i) { @@ -136,12 +138,12 @@ Shadings.RadialAxial = (function radialAxialShading() { getIR: function radialAxialShadingGetIR() { var coordsArr = this.coordsArr; var type = this.shadingType; - if (type == AXIAL_PATTERN_TYPE) { + if (type == PatternType.AXIAL) { var p0 = [coordsArr[0], coordsArr[1]]; var p1 = [coordsArr[2], coordsArr[3]]; var r0 = null; var r1 = null; - } else if (type == RADIAL_PATTERN_TYPE) { + } else if (type == PatternType.RADIAL) { var p0 = [coordsArr[0], coordsArr[1]]; var p1 = [coordsArr[3], coordsArr[4]]; var r0 = coordsArr[2]; From db6f4ca88b914573a7dbe08bac08bcc730b7aa57 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Mon, 5 Dec 2011 16:25:16 -0500 Subject: [PATCH 67/68] cross-platform sed fix --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index caeca9b41..93685d4eb 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,8 @@ bundle: | $(BUILD_DIR) @cd src; \ cat $(PDF_JS_FILES) > all_files.tmp; \ sed '/PDFJSSCRIPT_INCLUDE_ALL/ r all_files.tmp' pdf.js > ../$(BUILD_TARGET); \ - sed -i '' "s/PDFJSSCRIPT_BUNDLE_VER/`git log --format="%H" -n 1`/" ../$(BUILD_TARGET); \ + sed -i.bak "s/PDFJSSCRIPT_BUNDLE_VER/`git log --format="%H" -n 1`/" ../$(BUILD_TARGET); \ + rm -f ../$(BUILD_TARGET).bak rm -f *.tmp; \ cd .. From a7088602841e76fe4b1cb223a8771b6ed535dd00 Mon Sep 17 00:00:00 2001 From: Artur Adib <arturadib@gmail.com> Date: Mon, 5 Dec 2011 16:30:41 -0500 Subject: [PATCH 68/68] short she --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 93685d4eb..0ad2eb09c 100644 --- a/Makefile +++ b/Makefile @@ -64,7 +64,7 @@ bundle: | $(BUILD_DIR) @cd src; \ cat $(PDF_JS_FILES) > all_files.tmp; \ sed '/PDFJSSCRIPT_INCLUDE_ALL/ r all_files.tmp' pdf.js > ../$(BUILD_TARGET); \ - sed -i.bak "s/PDFJSSCRIPT_BUNDLE_VER/`git log --format="%H" -n 1`/" ../$(BUILD_TARGET); \ + sed -i.bak "s/PDFJSSCRIPT_BUNDLE_VER/`git log --format="%h" -n 1`/" ../$(BUILD_TARGET); \ rm -f ../$(BUILD_TARGET).bak rm -f *.tmp; \ cd ..