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);
        }
Esempio n. 2
0
        public TableRecord[] ReadTableRecords(OffsetTable offsets)
        {
            BaseStream.Position = offsets.TablesStart;
            var tables = new TableRecord[offsets.NumTables];

            for (int i = 0; i < offsets.NumTables; i++)
            {
                tables[i] = ReadTableRecord();
            }
            return(tables);
        }
Esempio n. 3
0
        public OpenTypeFont(OffsetTable offsets, OpenTypeFontReader reader, bool lazyLoad = true)
        {
            offsetTable     = offsets;
            tables          = reader.ReadTableRecords(offsetTable);
            nameTableRecord = tables.Select(t => new TableRecord?(t))
                              .Where(t => t.Value.TableTag == OpenTypeTag.NAME).FirstOrDefault();

            if (lazyLoad)
            {
                Reader = reader;
            }
            else
            {
                LoadAllTables(reader);
            }
        }