Генерация GS1 DataMatrix с использованием ZXing.Net
Что мне нужно
Нужно сгенерировать работающую GS1 DataMatrix, используя этот тестовый контент:
(240) 1234567890 (10) AA12345 (11) 123456 (21) 1 (96) 1234567
меры
Я скачал пакет Nuget отсюда:
а также
Я создал консольное приложение, которое использует этот код:
private static void DoGs1DataMatrixStuff()
{
var writer = new BarcodeWriter
{
Format = BarcodeFormat.DATA_MATRIX
};
writer
.Write("(240)1234567890(10)AA12345(11)123456(21)1(96)1234567")
.Save(@"C:\Temp\barcode.png");
}
Нет очевидного конкретного формата GS1_DataMatrix, который я мог бы использовать...
это дает мне
который при чтении приложением сканера на моем смартфоне дает буквальный контент, который я первоначально представил, а не с форматированием FNC1, которое я ожидаю для GS1:
(240) 1234567890 (10) AA12345 (11) 123456 (21) 1 (96) 1234567
в то время как это должно быть
2401234567890 10AA12345 11123456211 961234567
Из другого источника (не источника, который я могу использовать) я получил этот штрих-код:
С помощью моего приложения для смартфона это считывает правильные данные.
Вопрос
Как я могу воссоздать эту рабочую матрицу данных GS1, используя ZXing.Net?
также см
По этой ссылке Крис Банс поднимает ту же проблему, что и я, но его запрос не получил рабочего ответа.
1 ответ
Вы должны использовать отформатированную строку с символом ASCII 29 (GS - Group Separator):
(заменить "
ZXing.Net поддерживает символ GS с кодировщиком ASCII начиная с версии 0.15. Он заменяет значение ASCII 29 на кодовое слово FNC1 (232) в результирующем изображении матрицы данных.
Это только поддержка низкого уровня. Не существует встроенного класса или чего-то подобного, который понимает AI (идентификаторы приложений) с фиксированной или переменной длиной (аналогично классам анализатора результата для vCards, vEvent, ISBN, ...).