Класс для API ZINT «Barcode Generator»
Модератор: Дед Пахом
Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- Игорь Столяров
- Ветеран движения
- Сообщения: 7948
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 92 раза
Класс для API ZINT «Barcode Generator»
Библиотека для создания практически любых штрих-кодов.
В примере показан вывод штрих-кодов в окно и отчёт.
(Перекрестная ссылка на альтернативу viewtopic.php?p=40124#p40124) добавил Admin
В примере показан вывод штрих-кодов в окно и отчёт.
(Перекрестная ссылка на альтернативу viewtopic.php?p=40124#p40124) добавил Admin
- Вложения
-
- zint-2025-04-20.zip
- Версия: 20.04.2025 г.
- (509.49 КБ) 279 скачиваний
Последний раз редактировалось Игорь Столяров 20 Апрель 2025, 19:40, всего редактировалось 16 раз.
Make Clarion Great Again ! 
ZINT BarCode для Clarion
Вообще-то, где-нибудь надо выложить файлик лицензии автора библиотеки или где-то упомянуть его имя, а не ссылку.
А где русские буквы в QR-code?
А где русские буквы в QR-code?
C10, Win10x64
- RaFaeL
- ✯ Ветеран ✯
- Сообщения: 1409
- Зарегистрирован: 24 Март 2009, 17:59
- Откуда: НН
- Благодарил (а): 11 раз
- Поблагодарили: 2 раза
- Контактная информация:
ZINT BarCode для Clarion
Игорь, вычисление в ZINT:ANSItoUTF8 длины UTF-8 строки как длина строки ANSI, умноженная на 2, ошибочна
Например символ "№" будет 3 байта, а не 2. Соответственно например текст "№№№" правильно не перекодируется. Посмотри, как сейчас сделано в libxlsxwriter - сначала вычисляется требуемая длина строки, и уже затем создается выходная переменная необходимой длины
Например символ "№" будет 3 байта, а не 2. Соответственно например текст "№№№" правильно не перекодируется. Посмотри, как сейчас сделано в libxlsxwriter - сначала вычисляется требуемая длина строки, и уже затем создается выходная переменная необходимой длины
- Игорь Столяров
- Ветеран движения
- Сообщения: 7948
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 92 раза
ZINT BarCode для Clarion
Согласен, правильную форму перекодировки из ANSI в UTF8 c запросом размера я знаю (она же описана в MSDN) ...
Но это такой экзотический случай с "№№№", что бы городить выкрутасы с выделением памяти …

Как по мне - то проще тогда умножить не на 2, а на 3 и не вспоминать.

Make Clarion Great Again ! 
- Игорь Столяров
- Ветеран движения
- Сообщения: 7948
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 92 раза
ZINT BarCode для Clarion
Прекрасно поддерживается, но только она завёрнута в UTF8.
В оригинальном комплекте ZINT есть файл Manual.txt в котором есть описание допустимых кодировок
для каждого вида кода, что в общем-то и реализовано в методе ZintClass.CheckAndParam() …
Конкретно по QRCode: Input should usually be entered as Unicode (UTF-8) with conversion to Shift-JIS being carried out by Zint.
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5164
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 11 раз
- Поблагодарили: 60 раз
ZINT BarCode для Clarion
Если пробовать просто в прилагаемом примере, то не выводится. Я попробовал передать строку в utf8, вывалилась ошибка при сохранении в файле. Наверно, надо вчитываться в код класса, на бегу не получилось.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7948
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 92 раза
ZINT BarCode для Clarion
Мне сложно комментировать это сообщение, т.к. я не знаю, что именно Вы делали …finsoftrz писал(а): 05 Февраль 2020, 9:03 Если пробовать просто в прилагаемом примере, то не выводится.
Ничего кодировать в UTF8 не надо однозначно, класс это сделает сам если требуется.
Давайте по другому: к этому сообщению прикреплён пример с кодировкой русского текста в QRCode …

А проверить (прочитать QRCode) можно, например, вот здесь: https://decodeit.ru/qr
- Вложения
-
- demo.zip
- Русский текст в QRCode
- (13.84 КБ) 519 скачиваний
Make Clarion Great Again ! 
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5164
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 11 раз
- Поблагодарили: 60 раз
ZINT BarCode для Clarion
Ничего особенного не делал. В том примере для вывода на экран, который был, вместо цифр поставил русское Привет и вид штрих-кода qr. Потом пикнул со смартфона, выдало абракадабру. Цифры и латиница нормально. Еще app не скомпилилось, перенес код вручную в свое тестовое приложение. У меня такое есть специально для проверки разных вещей.
PS. Примеры лучше прикладывать в clw+prj.
PS. Примеры лучше прикладывать в clw+prj.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7948
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 92 раза
ZINT BarCode для Clarion
Пример взял из Examples C6.3 - он практически пустой, у меня нет никаких самопальных шаблонов и т.д.
Под C11 проверил, никаких проблем … Так что Ваше голословное обвинение связано с местными заморочками.

Откуда же я знаю что делает Ваш смартфон, кто и что на него устанавливал … ?

Судя по описанию - приложение на смартфоне не знает о существовании национальных кодировок и UTF-8.
Используйте пожалуйста ссылку для проверки QR кода из предыдущего сообщения.
Make Clarion Great Again ! 
ZINT BarCode для Clarion
Всё равно крякизюбры.Игорь Столяров писал(а): 05 Февраль 2020, 9:14 Давайте по другому: к этому сообщению прикреплён пример с кодировкой русского текста в QRCode …

C10, Win10x64
- finsoftrz
- ✯ Ветеран ✯
- Сообщения: 5164
- Зарегистрирован: 06 Ноябрь 2014, 12:48
- Благодарил (а): 11 раз
- Поблагодарили: 60 раз
ZINT BarCode для Clarion
Да нет, я просто про общепринятую практику написал. Не все же, к примеру, abc используют.Игорь Столяров писал(а): 05 Февраль 2020, 10:49Пример взял из Examples C6.3 - он практически пустой, у меня нет никаких самопальных шаблонов и т.д.
Под C11 проверил, никаких проблем … Так что Ваше голословное обвинение связано с местными заморочками.![]()
Кстати, да. Приложение на смартфоне не распознает кириллицу. Странно, вроде как стандартное приложение, версия андроида достаточно свежая.Игорь Столяров писал(а): 05 Февраль 2020, 10:49 Откуда же я знаю что делает Ваш смартфон, кто и что на него устанавливал … ?![]()
Судя по описанию - приложение на смартфоне не знает о существовании национальных кодировок и UTF-8.
Используйте пожалуйста ссылку для проверки QR кода из предыдущего сообщения.
C6/C12, ШВС, tps/btrieve.
- Игорь Столяров
- Ветеран движения
- Сообщения: 7948
- Зарегистрирован: 07 Июль 2005, 10:19
- Откуда: г. Ростов-на-ДоМу
- Благодарил (а): 28 раз
- Поблагодарили: 92 раза
ZINT BarCode для Clarion
Основное назначение QRCode в смартфонах - это быстрый переход по ссылкам.
Приложение вполне может не знать, что в далёкой России навострились продавать доменные имена в зоне РФ и т.д.

Также есть разные способы указания национальной кодировки в самом коде.
Например префиксы ECI (Extended Channel Interpretations) - их не рекомендуют использовать для традиционной работы,
т.к. требуется аппаратная поддержка распознавания в сканере, но она вполне может быть реализована в приложении смартфона.
Можно попробовать включить префикс ECI для UTF-8 в QR и посмотреть раскодирует ли приложение такой QR код …
Make Clarion Great Again ! 
-
- ✯ Ветеран ✯
- Сообщения: 5143
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 25 раз
ZINT BarCode для Clarion
У Айфона с кириллицей всё в порядке, если что.
We are hard at work… for you. 

-
- ✯ Ветеран ✯
- Сообщения: 5143
- Зарегистрирован: 28 Май 2009, 15:54
- Откуда: Москва
- Благодарил (а): 11 раз
- Поблагодарили: 25 раз
ZINT BarCode для Clarion
Можно этот QR-код приложить? А то я не могу zip скачать, корпоративный запрет. Я Айфоном посмотрю.
We are hard at work… for you. 
