protected void printBand(byte[] bgrData,int x,int y,int width,int height) throws PrinterException {
  mPSStream.println(IMAGE_SAVE);
  int psBytesPerRow=3 * width;
  while (psBytesPerRow > MAX_PSSTR) {
    psBytesPerRow/=2;
  }
  mPSStream.println(psBytesPerRow + IMAGE_STR);
  mPSStream.println("[" + width + " 0 "+ "0 "+ height+ " "+ x+ " "+ y+ "]concat");
  mPSStream.println(width + " " + height+ " "+ 8+ "["+ width+ " 0 "+ "0 "+ -height+ " 0 "+ height+ "]"+ "/imageSrc load false 3 colorimage");
  int index=0;
  byte[] rgbData=new byte[width * 3];
  try {
    for (int i=0; i < height; i++) {
      index=swapBGRtoRGB(bgrData,index,rgbData);
      byte[] encodedData=rlEncode(rgbData);
      byte[] asciiData=ascii85Encode(encodedData);
      mPSStream.write(asciiData);
      mPSStream.println("");
    }
  }
 catch (  IOException e) {
    throw new PrinterIOException(e);
  }
  mPSStream.println(IMAGE_RESTORE);
}

protected void printBand ( byte [ ] bgrData , int x , int y , int width , int height ) throws PrinterException { mPSStream . println ( IMAGE_SAVE ) ; int psBytesPerRow = 3 * width ; while ( psBytesPerRow > MAX_PSSTR ) { psBytesPerRow /= 2 ; } mPSStream . println ( psBytesPerRow + IMAGE_STR ) ; mPSStream . println ( "[" + width + " 0 " + "0 " + height + " " + x + " " + y + "]concat" ) ; mPSStream . println ( width + " " + height + " " + 8 + "[" + width + " 0 " + "0 " + - height + " 0 " + height + "]" + "/imageSrc load false 3 colorimage" ) ; int index = 0 ; byte [ ] rgbData = new byte [ width * 3 ] ; try { for ( int i = 0 ; i < height ; i ++ ) { index = swapBGRtoRGB ( bgrData , index , rgbData ) ; byte [ ] encodedData = rlEncode ( rgbData ) ; byte [ ] asciiData = ascii85Encode ( encodedData ) ; mPSStream . write ( asciiData ) ; mPSStream . println ( "" ) ; } } catch ( IOException e ) { throw new PrinterIOException ( e ) ; } mPSStream . println ( IMAGE_RESTORE ) ; }
prints the contents of the array of ints , ' data ' to the current page . the band is placed at the location ( x , y ) in device coordinates on the page . the width and height of the band is specified by the caller . currently the data is 24 bits per pixel in bgr format .
