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 V 4.10 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;
Download
a working example of this code here...
-
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);
}
Download a working example of this code here...
|