more robust fontMatrix parsing, error checking
This commit is contained in:
parent
38d28ecb2e
commit
66eff7a5cb
@ -551,6 +551,16 @@ var CanvasGraphics = (function CanvasGraphicsClosure() {
|
||||
throw 'Can\'t find font for ' + fontRefName;
|
||||
}
|
||||
|
||||
// If any of the diagonal elements of a transformation matrix are null
|
||||
// ctx.restore() will fail in FF. See bugzilla bug #719844.
|
||||
if (fontObj.fontMatrix[0] === 0 ||
|
||||
fontObj.fontMatrix[3] === 0 ) {
|
||||
warn('Invalid font matrix for font ' + fontRefName);
|
||||
|
||||
// Fallback
|
||||
fontObj.fontMatrix = IDENTITY_MATRIX;
|
||||
}
|
||||
|
||||
var name = fontObj.loadedName || 'sans-serif';
|
||||
|
||||
this.current.font = fontObj;
|
||||
|
10
src/fonts.js
10
src/fonts.js
@ -2594,7 +2594,15 @@ var Type1Parser = function type1Parser() {
|
||||
while (str[index++] != ']')
|
||||
count++;
|
||||
|
||||
var array = str.substr(start, count).split(' ');
|
||||
str = str.substr(start, count);
|
||||
|
||||
// Trim
|
||||
str = str.replace(/^\s+/, '');
|
||||
str = str.replace(/\s+$/, '');
|
||||
// Remove adjacent spaces
|
||||
str = str.replace(/\s+/g, ' ');
|
||||
|
||||
var array = str.split(' ');
|
||||
for (var i = 0, ii = array.length; i < ii; i++)
|
||||
array[i] = parseFloat(array[i] || 0);
|
||||
return array;
|
||||
|
Loading…
Reference in New Issue
Block a user