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;
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;