1 18 package org.apache.batik.svggen.font.table; 19 20 import java.io.IOException ; 21 import java.io.RandomAccessFile ; 22 23 28 public class SingleSubstFormat2 extends SingleSubst { 29 30 private int coverageOffset; 31 private int glyphCount; 32 private int[] substitutes; 33 private Coverage coverage; 34 35 36 protected SingleSubstFormat2(RandomAccessFile raf, int offset) throws IOException { 37 coverageOffset = raf.readUnsignedShort(); 38 glyphCount = raf.readUnsignedShort(); 39 substitutes = new int[glyphCount]; 40 for (int i = 0; i < glyphCount; i++) { 41 substitutes[i] = raf.readUnsignedShort(); 42 } 43 raf.seek(offset + coverageOffset); 44 coverage = Coverage.read(raf); 45 } 46 47 public int getFormat() { 48 return 2; 49 } 50 51 public int substitute(int glyphId) { 52 int i = coverage.findGlyph(glyphId); 53 if (i > -1) { 54 return substitutes[i]; 55 } 56 return glyphId; 57 } 58 59 } 60 61 | Popular Tags |