public CollectionHeader ReadCollectionHeader() { var header = new CollectionHeader { TTCTag = ReadTag(), MajorVersion = ReadUInt16(), MinorVersion = ReadUInt16(), NumFonts = ReadUInt32(), }; header.OffsetTable = new uint[header.NumFonts]; for (uint i = 0; i < header.NumFonts; i++) { header.OffsetTable[i] = ReadOffset32(); } if (header.MajorVersion == 2) { header.DSIGTag = ReadUInt32(); header.DSIGLength = ReadUInt32(); header.DSIGOffset = ReadUInt32(); } return(header); }
public OpenTypeFont[] ReadFonts(CollectionHeader header, bool lazyLoad = true) { var fonts = new OpenTypeFont[header.NumFonts]; for (uint i = 0; i < header.NumFonts; i++) { BaseStream.Position = header.OffsetTable[i]; fonts[i] = new OpenTypeFont(this, lazyLoad); } return(fonts); }
public OffsetTable[] ReadOffsetTables(CollectionHeader header) { var tables = new OffsetTable[header.NumFonts]; for (uint i = 0; i < header.NumFonts; i++) { BaseStream.Position = header.OffsetTable[i]; tables[i] = ReadOffsetTable(); } return(tables); }
public OpenTypeCollection(CollectionHeader header, OpenTypeCollectionReader reader, bool lazyLoad = true) { this.header = header; lazy = lazyLoad; if (lazyLoad) { Reader = reader; } else { LoadAll(reader); } }