Encoding DataMatrix with Latin-2 using ECI
Posted: Wed Sep 07, 2011 11:36 am
Hi,
We are a software company in Austria in the output management business.
As an international operating corporation such we are facing the interesting requirement to encode middle and east * language characters of the
German, Czech and Croatian language into datamatrix symbols.
As we only have limited control over the barcode-reader we do not have the option of encoding our data via UTF-8 or base64.
Therefor I am searching for a standard way to encode Latin-1 (which is the standard encoding of datamatrix) and Latin-2 into our symbols.
Unfortunately there is no out of the box solution supporting a "string in, bitmap out" style encoding supporting ECI that is capable of auto detecting the correct ECI-encoding of every each (text) character.
So I have 2 questions.
First is: Is the code I assembled to produce a symbol correct in the means of datamatrix standard (ISO/IEC16022:2006) and aim-standard (AIM Inc. ITS/04-001)
The code simply adds the character 0xC8 to "some leading text" and creates a symbol out of that.
Second question is:
Will there ever be a possibilty to read generated ECI-symbol with todays available barcode readers or Libraries?
I mean I could now of course write some code to decode the above generated symbol and get the correct output for any input string that is in Latin-1 or Latin-2 (even mixed).
But since I do not know how the codes will be processed by our customer in future appliances I would need a standard conformant way of encoding/decoding symbols.
Since I made that code up for myself and I have not found anything comparable I at least need the safety to say:
We are encoding that right and all other problems in reading occur of non-conformant scanners/libraries.
kind regards,
Roman Brandstetter
We are a software company in Austria in the output management business.
As an international operating corporation such we are facing the interesting requirement to encode middle and east * language characters of the
German, Czech and Croatian language into datamatrix symbols.
As we only have limited control over the barcode-reader we do not have the option of encoding our data via UTF-8 or base64.
Therefor I am searching for a standard way to encode Latin-1 (which is the standard encoding of datamatrix) and Latin-2 into our symbols.
Unfortunately there is no out of the box solution supporting a "string in, bitmap out" style encoding supporting ECI that is capable of auto detecting the correct ECI-encoding of every each (text) character.
So I have 2 questions.
First is: Is the code I assembled to produce a symbol correct in the means of datamatrix standard (ISO/IEC16022:2006) and aim-standard (AIM Inc. ITS/04-001)
The code simply adds the character 0xC8 to "some leading text" and creates a symbol out of that.
Code: Select all
var barcodeWriter = new Vintasoft.Barcode.BarcodeWriter ();
barcodeWriter.Settings.Barcode = Vintasoft.Barcode.BarcodeType.DataMatrix;
barcodeWriter.Settings.ProcessSpecialSymbols = true;
var eciCharacterValueItem = NonDataFlags.CreateECICharacter (4);
var encoding = Encoding.GetEncoding (1250); //windows-1250 is Latin-2 equivalent
var bytes = encoding.GetBytes ("Č");
var encodedString = new string (bytes.Select (x => (char)x).ToArray ());
var hacekC = new DataMatrixTextValueItem (encodedString, DataMatrixEncodingMode.Text);
barcodeWriter.Settings.ValueItems = new ValueItemBase[] { new DataMatrixTextValueItem ("some leading text", DataMatrixEncodingMode.Text), eciCharacterValueItem, hacekC };
var outputImage = barcodeWriter.GetBarcodeAsBitmap ();
Will there ever be a possibilty to read generated ECI-symbol with todays available barcode readers or Libraries?
I mean I could now of course write some code to decode the above generated symbol and get the correct output for any input string that is in Latin-1 or Latin-2 (even mixed).
But since I do not know how the codes will be processed by our customer in future appliances I would need a standard conformant way of encoding/decoding symbols.
Since I made that code up for myself and I have not found anything comparable I at least need the safety to say:
We are encoding that right and all other problems in reading occur of non-conformant scanners/libraries.
kind regards,
Roman Brandstetter