mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 10:08:06 +02:00
Merge to upstream
This commit is contained in:
commit
2197235470
5 changed files with 361 additions and 106 deletions
49
pdf.js
49
pdf.js
|
@ -840,7 +840,6 @@ var DecryptStream = (function() {
|
|||
for (i = 0; i < n; i++)
|
||||
buffer[bufferLength++] = chunk[i];
|
||||
this.bufferLength = bufferLength;
|
||||
this.eof = n < chunkSize;
|
||||
};
|
||||
|
||||
return constructor;
|
||||
|
@ -2982,7 +2981,7 @@ var Page = (function() {
|
|||
this.compile(gfx, fonts);
|
||||
stats.compile = Date.now();
|
||||
|
||||
FontLoader.bind(
|
||||
var fontObjs = FontLoader.bind(
|
||||
fonts,
|
||||
function() {
|
||||
stats.fonts = Date.now();
|
||||
|
@ -2999,6 +2998,9 @@ var Page = (function() {
|
|||
continuation(exc);
|
||||
});
|
||||
});
|
||||
|
||||
for (var i = 0, ii = fonts.length; i < ii; ++i)
|
||||
fonts[i].fontDict.fontObj = fontObjs[i];
|
||||
},
|
||||
|
||||
|
||||
|
@ -3561,23 +3563,9 @@ var PartialEvaluator = (function() {
|
|||
eval: function(stream, xref, resources, fonts) {
|
||||
resources = xref.fetchIfRef(resources) || new Dict();
|
||||
var xobjs = xref.fetchIfRef(resources.get('XObject')) || new Dict();
|
||||
|
||||
var parser = new Parser(new Lexer(stream), false);
|
||||
var objpool = [];
|
||||
|
||||
function emitArg(arg) {
|
||||
if (typeof arg == 'object' || typeof arg == 'string') {
|
||||
var index = objpool.length;
|
||||
objpool[index] = arg;
|
||||
return 'objpool[' + index + ']';
|
||||
}
|
||||
return arg;
|
||||
}
|
||||
|
||||
var src = '';
|
||||
|
||||
var args = [];
|
||||
var obj;
|
||||
var args = [], argsArray = [], fnArray = [], obj;
|
||||
|
||||
while (!IsEOF(obj = parser.getObj())) {
|
||||
if (IsCmd(obj)) {
|
||||
var cmd = obj.cmd;
|
||||
|
@ -3599,10 +3587,7 @@ var PartialEvaluator = (function() {
|
|||
);
|
||||
|
||||
if ('Form' == type.name) {
|
||||
args[0].code = this.eval(xobj,
|
||||
xref,
|
||||
xobj.dict.get('Resources'),
|
||||
fonts);
|
||||
args[0].code = this.eval(xobj, xref, xobj.dict.get('Resources'), fonts);
|
||||
}
|
||||
}
|
||||
} else if (cmd == 'Tf') { // eagerly collect all fonts
|
||||
|
@ -3622,21 +3607,19 @@ var PartialEvaluator = (function() {
|
|||
}
|
||||
}
|
||||
|
||||
src += 'this.';
|
||||
src += fn;
|
||||
src += '(';
|
||||
src += args.map(emitArg).join(',');
|
||||
src += ');\n';
|
||||
|
||||
args.length = 0;
|
||||
fnArray.push(fn);
|
||||
argsArray.push(args);
|
||||
args = [];
|
||||
} else {
|
||||
assertWellFormed(args.length <= 33, 'Too many arguments');
|
||||
args.push(obj);
|
||||
}
|
||||
}
|
||||
|
||||
var fn = Function('objpool', src);
|
||||
return function(gfx) { fn.call(gfx, objpool); };
|
||||
return function(gfx) {
|
||||
for(var i = 0, length = argsArray.length; i < length; i++)
|
||||
gfx[fnArray[i]].apply(gfx, argsArray[i]);
|
||||
}
|
||||
},
|
||||
|
||||
translateFont: function(fontDict, xref, resources) {
|
||||
|
@ -4119,7 +4102,7 @@ var CanvasGraphics = (function() {
|
|||
if (this.ctx.$setFont) {
|
||||
this.ctx.$setFont(fontName, size);
|
||||
} else {
|
||||
Fonts.setActive(fontName, fontObj, size);
|
||||
FontMeasure.setActive(fontObj, size);
|
||||
|
||||
size = (size <= kRasterizerMin) ? size * kScalePrecision : size;
|
||||
this.ctx.font = size + 'px "' + fontName + '"';
|
||||
|
@ -4176,7 +4159,7 @@ var CanvasGraphics = (function() {
|
|||
text = font.charsToUnicode(text);
|
||||
}
|
||||
ctx.fillText(text, 0, 0);
|
||||
current.x += Fonts.measureText(text);
|
||||
current.x += FontMeasure.measureText(text);
|
||||
}
|
||||
|
||||
this.ctx.restore();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue