Ejemplo n.º 1
0
  /** Creates new PostTable */
  protected PostTable(final DirectoryEntry de, final DataInput di) throws IOException {
    this.de = (DirectoryEntry) de.clone();
    version = di.readInt();
    italicAngle = di.readInt();
    underlinePosition = di.readShort();
    underlineThickness = di.readShort();
    isFixedPitch = di.readInt();
    minMemType42 = di.readInt();
    maxMemType42 = di.readInt();
    minMemType1 = di.readInt();
    maxMemType1 = di.readInt();

    if (version == 0x00020000) {
      numGlyphs = di.readUnsignedShort();
      glyphNameIndex = new int[numGlyphs];
      for (int i = 0; i < numGlyphs; i++) {
        glyphNameIndex[i] = di.readUnsignedShort();
      }
      int h = highestGlyphNameIndex();
      if (h > 257) {
        h -= 257;
        psGlyphName = new String[h];
        for (int i = 0; i < h; i++) {
          final int len = di.readUnsignedByte();
          final byte[] buf = new byte[len];
          di.readFully(buf);
          psGlyphName[i] = new String(buf);
        }
      }
      // } else if (version == 0x00025000) {
      // } else if (version == 0x00030000) {
    }
  }
Ejemplo n.º 2
0
  protected Os2Table(DirectoryEntry de, DataInput di) throws IOException {
    this._de = (DirectoryEntry) de.clone();
    _version = di.readUnsignedShort();
    _xAvgCharWidth = di.readShort();
    _usWeightClass = di.readUnsignedShort();
    _usWidthClass = di.readUnsignedShort();
    _fsType = di.readShort();
    _ySubscriptXSize = di.readShort();
    _ySubscriptYSize = di.readShort();
    _ySubscriptXOffset = di.readShort();
    _ySubscriptYOffset = di.readShort();
    _ySuperscriptXSize = di.readShort();
    _ySuperscriptYSize = di.readShort();
    _ySuperscriptXOffset = di.readShort();
    _ySuperscriptYOffset = di.readShort();
    _yStrikeoutSize = di.readShort();
    _yStrikeoutPosition = di.readShort();
    _sFamilyClass = di.readShort();
    byte[] buf = new byte[10];
    di.readFully(buf);
    _panose = new Panose(buf);
    _ulUnicodeRange1 = di.readInt();
    _ulUnicodeRange2 = di.readInt();
    _ulUnicodeRange3 = di.readInt();
    _ulUnicodeRange4 = di.readInt();
    _achVendorID = di.readInt();
    _fsSelection = di.readShort();
    _usFirstCharIndex = di.readUnsignedShort();
    _usLastCharIndex = di.readUnsignedShort();
    _sTypoAscender = di.readShort();
    _sTypoDescender = di.readShort();
    _sTypoLineGap = di.readShort();
    _usWinAscent = di.readUnsignedShort();
    _usWinDescent = di.readUnsignedShort();
    _ulCodePageRange1 = di.readInt();
    _ulCodePageRange2 = di.readInt();

    // OpenType 1.3
    if (_version == 2) {
      _sxHeight = di.readShort();
      _sCapHeight = di.readShort();
      _usDefaultChar = di.readUnsignedShort();
      _usBreakChar = di.readUnsignedShort();
      _usMaxContext = di.readUnsignedShort();
    }
  }
Ejemplo n.º 3
0
 protected VheaTable(DirectoryEntry de, DataInput di) throws IOException {
   _de = (DirectoryEntry) de.clone();
   _version = di.readInt();
   _ascent = di.readShort();
   _descent = di.readShort();
   _lineGap = di.readShort();
   _advanceHeightMax = di.readShort();
   _minTopSideBearing = di.readShort();
   _minBottomSideBearing = di.readShort();
   _yMaxExtent = di.readShort();
   _caretSlopeRise = di.readShort();
   _caretSlopeRun = di.readShort();
   for (int i = 0; i < 5; ++i) {
     di.readShort();
   }
   _metricDataFormat = di.readShort();
   _numberOfLongVerMetrics = di.readUnsignedShort();
 }
Ejemplo n.º 4
0
  /** Creates a new instance of BaseTable */
  protected BaseTable(DirectoryEntry de, DataInput di) throws IOException {
    _de = (DirectoryEntry) de.clone();

    // Load entire table into a buffer, and create another input stream
    _buf = new byte[de.getLength()];
    di.readFully(_buf);
    DataInput di2 = getDataInputForOffset(0);

    _version = di2.readInt();
    _horizAxisOffset = di2.readUnsignedShort();
    _vertAxisOffset = di2.readUnsignedShort();
    if (_horizAxisOffset != 0) {
      _horizAxis = new Axis(_horizAxisOffset);
    }
    if (_vertAxisOffset != 0) {
      _vertAxis = new Axis(_vertAxisOffset);
    }

    // Let go of the buffer
    _buf = null;
  }