public void initData(TrueTypeFont ttf,
TTFDataStream data) throws IOException {
HorizontalHeaderTable hHeader = ttf.getHorizontalHeader();
MaximumProfileTable maxp = ttf.getMaximumProfile();
int numHMetrics = hHeader.getNumberOfHMetrics();
int numGlyphs = maxp.getNumGlyphs();
advanceWidth = new int[ numHMetrics ];
leftSideBearing = new short[ numHMetrics ];
for( int i=0; i< numHMetrics; i++ )
{
advanceWidth[i] = data.readUnsignedShort();
leftSideBearing[i] = data.readSignedShort();
}
int numberNonHorizontal = numGlyphs - numHMetrics;
nonHorizontalLeftSideBearing = new short[ numberNonHorizontal ];
for( int i=0; i< numberNonHorizontal; i++ )
{
nonHorizontalLeftSideBearing[i] = data.readSignedShort();
}
}
This will read the required data from the stream. |