protected static Font[] ParseTTC(BinaryReaderFont reader) { TTCHeader ttcHeader = TTCHeader.Read(reader); Font[] fonts = new Font[ttcHeader.numFonts]; //Console.WriteLine(ttcHeader); for (int i = 0; i < ttcHeader.numFonts; i++) { uint fontOffset = ttcHeader.offsetTable[i]; reader.Position = fontOffset; fonts[i] = Font.Read(reader); } return(fonts); }
public static TTCHeader Read(BinaryReaderFont reader) { TTCHeader value = new TTCHeader(); value.ttcTag = reader.ReadTag(); if (value.ttcTag != Tag) { throw new System.Exception( string.Format("Parse error: ttcTag is not valid. {0}", value.ttcTag) ); } value.majorVersion = reader.ReadUInt16(); value.minorVersion = reader.ReadUInt16(); value.numFonts = reader.ReadUInt32(); value.offsetTable = reader.ReadUInt32Array((int)value.numFonts); if (value.majorVersion >= 2) { value.dsigTag = reader.ReadUInt32(); value.dsigLength = reader.ReadUInt32(); value.dsigOffset = reader.ReadUInt32(); } return(value); }