parseOS2Table function
dynamic
parseOS2Table(
- dynamic data,
- dynamic start
Implementation
parseOS2Table(data, start) {
var os2 = {};
var p = new Parser(data, start);
os2["version"] = p.parseUShort();
os2["xAvgCharWidth"] = p.parseShort();
os2["usWeightClass"] = p.parseUShort();
os2["usWidthClass"] = p.parseUShort();
os2["fsType"] = p.parseUShort();
os2["ySubscriptXSize"] = p.parseShort();
os2["ySubscriptYSize"] = p.parseShort();
os2["ySubscriptXOffset"] = p.parseShort();
os2["ySubscriptYOffset"] = p.parseShort();
os2["ySuperscriptXSize"] = p.parseShort();
os2["ySuperscriptYSize"] = p.parseShort();
os2["ySuperscriptXOffset"] = p.parseShort();
os2["ySuperscriptYOffset"] = p.parseShort();
os2["yStrikeoutSize"] = p.parseShort();
os2["yStrikeoutPosition"] = p.parseShort();
os2["sFamilyClass"] = p.parseShort();
os2["panose"] = [];
for (var i = 0; i < 10; i++) {
os2["panose"].add( p.parseByte() );
}
os2["ulUnicodeRange1"] = p.parseULong();
os2["ulUnicodeRange2"] = p.parseULong();
os2["ulUnicodeRange3"] = p.parseULong();
os2["ulUnicodeRange4"] = p.parseULong();
os2["achVendID"] = String.fromCharCodes([p.parseByte(), p.parseByte(), p.parseByte(), p.parseByte()]);
os2["fsSelection"] = p.parseUShort();
os2["usFirstCharIndex"] = p.parseUShort();
os2["usLastCharIndex"] = p.parseUShort();
os2["sTypoAscender"] = p.parseShort();
os2["sTypoDescender"] = p.parseShort();
os2["sTypoLineGap"] = p.parseShort();
os2["usWinAscent"] = p.parseUShort();
os2["usWinDescent"] = p.parseUShort();
if (os2["version"] >= 1) {
os2["ulCodePageRange1"] = p.parseULong();
os2["ulCodePageRange2"] = p.parseULong();
}
if (os2["version"] >= 2) {
os2["sxHeight"] = p.parseShort();
os2["sCapHeight"] = p.parseShort();
os2["usDefaultChar"] = p.parseUShort();
os2["usBreakChar"] = p.parseUShort();
os2["usMaxContent"] = p.parseUShort();
}
return os2;
}