private HashMap<String,byte[]> readChars(byte[] d){
  HashMap<String,byte[]> hm=new HashMap<String,byte[]>();
  int i=findSlashName(d,"CharStrings");
  if (i < 0) {
    return hm;
  }
  PSParser psp=new PSParser(d,i);
  while (true) {
    String s=psp.readThing();
    char c=s.charAt(0);
    if (c == '/') {
      int len=Integer.parseInt(psp.readThing());
      String go=psp.readThing();
      if (go.equals("-|") || go.equals("RD")) {
        psp.setLoc(psp.getLoc() + 1);
        byte[] line=psp.getNEncodedBytes(len,password,lenIV);
        hm.put(s.substring(1),line);
      }
    }
 else     if (s.equals("end")) {
      break;
    }
  }
  return hm;
}

private HashMap < String , byte [ ] > readChars ( byte [ ] d ) { HashMap < String , byte [ ] > hm = new HashMap < String , byte [ ] > ( ) ; int i = findSlashName ( d , "CharStrings" ) ; if ( i < 0 ) { return hm ; } PSParser psp = new PSParser ( d , i ) ; while ( true ) { String s = psp . readThing ( ) ; char c = s . charAt ( 0 ) ; if ( c == '/' ) { int len = Integer . parseInt ( psp . readThing ( ) ) ; String go = psp . readThing ( ) ; if ( go . equals ( "-|" ) || go . equals ( "RD" ) ) { psp . setLoc ( psp . getLoc ( ) + 1 ) ; byte [ ] line = psp . getNEncodedBytes ( len , password , lenIV ) ; hm . put ( s . substring ( 1 ) , line ) ; } } else if ( s . equals ( "end" ) ) { break ; } } return hm ; }
get the character definitions of the font .
