// If the font is to be ignored, register it like an already loaded font
// to avoid the cost of waiting for it be be loaded by the platform.
- if (properties.ignore || properties.type == "TrueType" || kDisableFonts) {
+ if (properties.ignore || kDisableFonts) {
Fonts[name] = {
data: file,
loading: false,
var length = FontsUtils.bytesToInteger(file.getBytes(4));
// Read the table associated data
- var currentPosition = file.pos;
- file.pos = file.start + offset;
-
+ var previousPosition = file.pos;
+ file.pos = file.start ? file.start : 0;
+ file.skip(offset);
var data = file.getBytes(length);
- file.pos = currentPosition;
+ file.pos = previousPosition;
return {
tag: tag,
var tokens = [];
var token = "";
- var buffer = cmapObj.ensureBuffer ? cmapObj.ensureBuffer() : cmapObj;
- var cmap = cmapObj.getBytes(buffer.byteLength);
+ var length = cmapObj.length;
+ if (cmapObj instanceof FlateStream) {
+ cmapObj.readBlock();
+ length = cmapObj.bufferLength;
+ }
+
+ var cmap = cmapObj.getBytes(length);
for (var i =0; i < cmap.length; i++) {
var byte = cmap[i];
if (byte == 0x20 || byte == 0x0A || byte == 0x3C || byte == 0x3E) {