Добрый день!
Нужно напечатать ШтрихКод маркировки DataMatrix, GS1. Вот он:
0104630086153039215Sd_,r93ACAN3103001034
Как видим, в нем два символа-разделителя "GS1"(КодСимвола(29)). Так, естественно строка на печать не вывелется.
Подготавливаем, вырезаем GS1 а следующие за ними два символа оборачиваем в квадратные скобки. Получаем:
[01]04610017097151[21]5eY4K:[93]A8Ih[31]03001630
Не выводится... Пустые картинки, и возвращает метод ошибку:
"Error 260: Invalid AI value (31)"
Почему? Чем ему так 31 ненравится? Если туда принудительно пихнуть например 93, то все печатает...
Но, мне именно 31 нужно, так, как это весовой товар, и символы сдедующие за кодом применения 31 говорят об этом и содержат в себе вес единицы товара...
Разобрался.
Я не знаю, что там FormEx не нравится печатать [31], но, это и не верно - там код применения [3103].
Так - печатает. Х.з., как он это понимает, но так.
(0) Попрошу на FormEx не наезжать!
Для вывода ШК используется обертка библиотеки Zint https://zint.org.uk Т.е. "Error 260: Invalid AI value (31)" выдает не FormEx, а Zint, вот к Zint и все претензии...
Да не... Они молодцы, это я лопухнулся, не знал, что "код применения" это из спецификации ШК GS1, а не из ЧестногоЗнака их хотелка.
Когда стал разбираться, действительно такого AI нет, но есть 3103. FormEx(ну, или точнее Zint) знали об этом, поэтому и не печатали, а я нет :-( Теперь, знаю :-)
Скажу вдобавок, нужно использовать одну из крайних версий Формекс, т.к. в него включена новая сборка Zint, в которой исправлены ошибки неверного вывода Датаматрикс в некоторых случаях.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.