How to Pass a Byte Array into Java Components

< Back
You are here:
Print

How to Pass a Byte Array into Java Components

The following error may occur when passing a byte array directly into the DataToEncode method that expects a string value when using the Java Barcode Components:
java.lang.ArrayIndexOutOfBoundsException

Solution(s):

The solutions differ depending on the symbology:

  • PDF417: This is only possible with IDAutomation PDF417 Java Products dated October 2004 or later. When using PDF417, pass the byte array to the binaryCode field of the class library. Make sure to set the processTilde to false and set PDFMode to 0.
    For example:
    PDF417 bc=new PDF417();
    bc.processTilde=false;
    bc.PDFMode=0;
    bc.binaryCode=myByteArray;

  • Data Matrix: When using Data Matrix barcodes, use the code example below to convert the byte array (encodedBytes) into a string that can be encoded in the code field. Make sure to set the encoding to E_BASE256 and processTilde to false.
    DataMatrix bc = new DataMatrix();
    bc.encoding = DataMatrix.E_BASE256;
    bc.processTilde=false;
    bc.code=””;
    String binaryString;
    for (int i=0; i < encodedBytes.length; i++)
    {
    binaryString = Integer.toBinaryString((int)encodedBytes[i]);
    if (binaryString.length() > 8)
    binaryString = binaryString.substring(binaryString.length()-8,binaryString.length());
    bc.code = bc.code + (char) Integer.parseInt(binaryString,2);
    }