package org.getopt.pcl5.PCL5Interpreter;
import java.io.IOException;
import java.io.InputStream;
public class FontHeaderTrueType extends FontHeaderCommon {
private final static int DESCRIPTOR_SIZE = 72;
private int _firstCode;
private int _lastCode;
private int _pitchExtended;
private int _heightExtended;
private int _capHeight;
private int _scaleFactor;
private int _masterUnderlinePosition;
private int _masterUnderlineThickness;
private int _fontScalingTechnology;
private int _variety;
private byte[] _additionalData;
private byte[] _segmentFontData;
private int _reserved2;
private int _checksum;
public FontHeaderTrueType(int numOfBytes, InputStream in) throws IOException {
super(numOfBytes, in);
_descriptorSize = numOfBytes;
_headerFormat = 15;
_firstCode = 256 * in.read() + in.read();
_lastCode = 256 * in.read() + in.read();
_pitchExtended = in.read();
_heightExtended = in.read();
_capHeight = 256 * in.read() + in.read();
_nativeFont = in.read() == 0;
_fontNumber = readFontNumber(in);
_fontName = readFontName(in);
_scaleFactor = 256 * in.read() + in.read();
_masterUnderlinePosition = 256 * in.read() + in.read();
_masterUnderlineThickness = 256 * in.read() + in.read();
_fontScalingTechnology = in.read();
_variety = in.read();
int additionalDataSize = numOfBytes - 72 - 2;
if (additionalDataSize > 0) {
_additionalData = new byte[additionalDataSize];
in.read(_additionalData);
}
_segmentFontData = new byte[1];
in.read(_segmentFontData);
_reserved2 = in.read();
_checksum = in.read();
}
public static int getDESCRIPTOR_SIZE() {
return DESCRIPTOR_SIZE;
}
public byte[] getAdditionalData() {
return _additionalData;
}
public int getCapHeight() {
return _capHeight;
}
public int getChecksum() {
return _checksum;
}
public int getFirstCode() {
return _firstCode;
}
public int getFontScalingTechnology() {
return _fontScalingTechnology;
}
public int getHeightExtended() {
return _heightExtended;
}
public int getLastCode() {
return _lastCode;
}
public int getMasterUnderlinePosition() {
return _masterUnderlinePosition;
}
public int getMasterUnderlineThickness() {
return _masterUnderlineThickness;
}
public int getPitchExtended() {
return _pitchExtended;
}
public int getScaleFactor() {
return _scaleFactor;
}
public byte[] getSegmentFontData() {
return _segmentFontData;
}
public int getVariety() {
return _variety;
}
public boolean isScalable() {
return true;
}
}