|
|
@ -183,14 +183,9 @@ var Font = (function () { |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
function string16(value, signed) { |
|
|
|
function string16(value, signed) { |
|
|
|
if (signed && value < 0) { |
|
|
|
if (signed) { |
|
|
|
value = Math.abs(value); |
|
|
|
value ^= 0xffff; |
|
|
|
var byte = (value >> 8) & 0xff; |
|
|
|
value += 1; |
|
|
|
return String.fromCharCode(byte ^ 0xff) + |
|
|
|
|
|
|
|
String.fromCharCode(value & 0xff); |
|
|
|
|
|
|
|
} else if (signed) { |
|
|
|
|
|
|
|
return String.fromCharCode((value >> 8) & 0xff) + |
|
|
|
|
|
|
|
String.fromCharCode(value & 0xff); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
return String.fromCharCode((value >> 8) & 0xff) + |
|
|
|
return String.fromCharCode((value >> 8) & 0xff) + |
|
|
|
String.fromCharCode(value & 0xff); |
|
|
|
String.fromCharCode(value & 0xff); |
|
|
@ -743,8 +738,8 @@ var Font = (function () { |
|
|
|
var width = 0, lsb = 0; |
|
|
|
var width = 0, lsb = 0; |
|
|
|
for (var i = 0; i < charstrings.length; i++) { |
|
|
|
for (var i = 0; i < charstrings.length; i++) { |
|
|
|
var charstring = charstrings[i]; |
|
|
|
var charstring = charstrings[i]; |
|
|
|
if (fontCount == 1) { |
|
|
|
if (fontCount == 9) { |
|
|
|
log(charstring.width + "::" + charstring.lsb); |
|
|
|
log(charstring.glyph + "::" + charstring.width + "::" + charstring.lsb); |
|
|
|
} |
|
|
|
} |
|
|
|
hmtx += string16(charstring.width) + string16(charstring.lsb, true); |
|
|
|
hmtx += string16(charstring.width) + string16(charstring.lsb, true); |
|
|
|
} |
|
|
|
} |
|
|
@ -1061,7 +1056,7 @@ var Type1Parser = function() { |
|
|
|
if (value == 13) { |
|
|
|
if (value == 13) { |
|
|
|
width = charstring[1]; |
|
|
|
width = charstring[1]; |
|
|
|
lsb = charstring[0]; |
|
|
|
lsb = charstring[0]; |
|
|
|
charstring.push(lsb, "hmoveto"); |
|
|
|
//charstring.push(lsb, "hmoveto");
|
|
|
|
charstring.splice(0, 1); |
|
|
|
charstring.splice(0, 1); |
|
|
|
used = true; |
|
|
|
used = true; |
|
|
|
continue; |
|
|
|
continue; |
|
|
|