public void Read()
{
try
{
HorizontalHeaderTable hhea = this.fontData.hhea;
MaximumProfileTable maxp = this.fontData.maxp;
if (hhea != null && maxp != null)
{
int numMetrics = hhea.numberOfHMetrics; //->NumberOfHMetrics();
int numLsbs = maxp.numGlyphs - numMetrics;
Debug.Assert(numMetrics != 0);
Debug.Assert(numLsbs >= 0);
this.metrics = new HorizontalMetrics[numMetrics];
for (int idx = 0; idx < numMetrics; idx++)
this.metrics[idx] = new HorizontalMetrics(this.fontData);
if (numLsbs > 0)
{
this.leftSideBearing = new FWord[numLsbs];
for (int idx = 0; idx < numLsbs; idx++)
this.leftSideBearing[idx] = this.fontData.ReadFWord();
}
}
}
catch (Exception ex)
{
throw new PdfSharpException(PSSR.ErrorReadingFontData, ex);
}
}
}