public override void Process(TrueTypeFont font) { if (font.hhea == null) { throw new Exception("Table processing order error. Processing the hmtx table requires the hhea table."); } Metrics = new HorizontalMetric[font.hhea.NumberOfHorizontalMetrics]; var reader = new TrueTypeReader(Data); for (var m = 0; m < Metrics.Length; m++) { Metrics[m] = new HorizontalMetric() { AdvanceWidth = reader.ReadUFWord(), LeftSideBearing = reader.ReadFWord() }; } reader.Dispose(); }
public override void Process(TrueTypeFont font) { var reader = new TrueTypeReader(Data); Version = reader.ReadFixed(); Ascender = reader.ReadFWord(); Descender = reader.ReadFWord(); LineGap = reader.ReadFWord(); AdvanceWidthMax = reader.ReadUFWord(); MinLeftSideBearing = reader.ReadFWord(); MinRightSideBearing = reader.ReadFWord(); XMaxExtent = reader.ReadFWord(); CaretSlopeRise = reader.ReadShort(); CaretSlopeRun = reader.ReadShort(); Reserved0 = reader.ReadShort(); Reserved1 = reader.ReadShort(); Reserved2 = reader.ReadShort(); Reserved3 = reader.ReadShort(); Reserved4 = reader.ReadShort(); MetricDataFormat = reader.ReadShort(); NumberOfHorizontalMetrics = reader.ReadUShort(); reader.Dispose(); }