Русский

Текстовые и повседневные инструменты · Набор инструментов для QR и штрих-кодов

Code 128 наборы кодов A, B и C: почему цифры делают штрих-коды короче

· Как это работает

кодирование печать рабочий процесс разработчика

Длинный смешанный шаблон Code 128 рядом с компактным числовым шаблоном.
Оригинальная векторная иллюстрация ToolAcre

Объясняет три набора кодов Code 128, как кодовый набор C упаковывает две цифры на символ и почему только числовая метка может оказаться заметно уже, чем смешанная.

Штрих-код, который не помещается на этикетке: как выбор символов, а не только размер шрифта, определяет ширину символа Code 128

Ширина Code 128 контролируется создаваемой последовательностью символов, а не уменьшением шрифта заголовка. Тесты ToolAcre показывают, что набор цифр кодируется более компактно, чем набор букв аналогичного размера, поскольку автоматический кодировщик может использовать парные цифры.

Разработчик этикеток может измерить последствия напрямую, поскольку `generateCode128` возвращает `moduleCount` с двоичным шаблоном. Две строки одинаковой длины символов могут иметь разное количество модулей, если одна разрешает парные цифры, а другая требует отдельных символов или изменений набора. Экспортированная ширина также включает фиксированные тихие зоны, поэтому сжатие заголовка или изменение его шрифта не приводит к уменьшению самих полос.

Кодовые наборы A, B и C в одной таблице — управляющие символы и прописные буквы, верхний и нижний регистр, пары цифр.

Три набора кодов охватывают различные части репертуара Code 128: A используется для заглавных букв и элементов управления, B охватывает печатный текст со смешанным регистром, а C представляет пары десятичных цифр. ToolAcre не просит пользователей выбрать набор вручную.

ToolAcre намеренно скрывает ручной выбор набора, поскольку автоматический кодировщик имеет полный ввод и может последовательно выбирать переходы. Это позволяет избежать пользовательского интерфейса, в котором пользователь принудительно устанавливает C для букв или ошибочно принимает набор, ориентированный на элементы управления, за обычный текст. Граница не менее важна: автоматический выбор оптимизирует допустимую строку ASCII, но не транслитерирует буквы с диакритическими знаками и не расширяет Code 128 за пределы кодовых точек от нуля до 127.

Почему кодовый набор C уменьшает ширину рядов цифр вдвое — один символ на две цифры, и что происходит при нечетном количестве цифр

Набор C превращает каждую полную пару цифр в один символ данных, поэтому для длинных числовых серий четной длины требуется меньше символов. При нечетном счете кодер должен оставить или задержать набор C для несовпадающей цифры, в результате чего точный результат будет зависеть от автоматической сегментации.

Нечетный прогон демонстрирует предел использования ярлыка «две цифры на символ». В `12345` последняя цифра не может образовывать пару set-C, поэтому кодировщик должен учитывать это с помощью другой стратегии и любых накладных расходов на переход. Префикс запуска с `A` добавляет еще один непарный символ. Сгенерируйте оба значения, а не оценивайте ширину по шести отображаемым символам, поскольку решения о сегментации представлены в создаваемых модулях, а не в заголовке.

Переключение в середине штрих-кода — как символы сдвига и изменения кода позволяют смешивать наборы штрих-кодов за счет дополнительных символов.

Смешанный идентификатор может переключаться между наборами, когда сохраненные символы перевешивают издержки переключения. Это решение принимает кодер CODE128_AUTO; приложение проверяет вывод, а не обещает, что каждая изолированная пара цифр запускает определенный переход.

Символы переключателей занимают пространство, а это означает, что короткий цифровой остров внутри букв, возможно, не стоит вводить набор C. CODE128_AUTO принимает решение на основе всей строки, а не на основе правила, согласно которому каждые две цифры запускают переключатель. Это также объясняет, почему вставка знаков препинания в серийный номер может расширить его более чем на один символ данных: это может разделить полезный цикл и вызвать переходы вокруг прерывания.

Счетные модули — одиннадцать модулей на символ, тринадцать для стоп-образца, плюс тихие зоны для прогнозирования ширины печати.

Обычные символы Code 128 занимают одиннадцать модулей, а шаблон остановки длиннее, а рендерер добавляет десять узких тихих зон с обеих сторон. Подсчет излучаемых модулей позволяет более надежно предсказать ширину, чем подсчет видимых входных символов.

Рендерер превращает каждый бинарный модуль в фиксированное число пикселей и добавляет десять узких модулей с обеих сторон. Его стоп-последовательность состоит из тринадцати модулей, а обычные символы начинаются группами по одиннадцать модулей. Эти факты реализации позволяют макету использовать возвращаемое количество модулей для расчета ширины потенциального пикселя; они не гарантируют, что физический отпечаток будет сканирован на конкретном устройстве.

Рабочий пример — тот же двенадцатизначный серийный номер, только цифры, затем с буквенным префиксом, сравнение количества и ширины символов.

Сравните 123456789012 с A12345678901 в генераторе. Ввод только цифр дает кодировщику непрерывную серию пар, в то время как префикс обеспечивает смешанную последовательность; Тесты ToolAcre используют тот же принцип для проверки того, что цифровые данные уже.

Используйте контролируемую пару, например `123456789012` и `A12345678901`, сохраните те же настройки экспорта и сравните ширину обоих видов SVG. Для второго значения может потребоваться другой начальный набор и смешанная кодировка, хотя оба содержат двенадцать символов. Это лучшее доказательство конструкции, чем замена модуля меньшего размера, который сохраняет счетчик, но затрудняет разрешение каждого столбца для принтера и считывателя.

Что здесь не распространяется — разрешение принтера, качество ленты и правила GS1 для розничных штрих-кодов.

Это сравнение ничего не говорит о качестве ленты, точках принтера или правилах этикетирования GS1. Он также не превращает ToolAcre в службу розничных штрих-кодов: настроенная и реализованная символика представляет собой простой Code 128 для идентификаторов, которыми вы управляете.

Точки принтера, распространение чернил и перенос ленты происходят после того, как ToolAcre создаст точную геометрию. Правила GS1 применяются до него, определяя данные и элементы управления для кодирования. Ни одна из проблем не решается автоматическим выбором набора кодов. Технически компактный SVG все равно может быть неправильной символикой, отпечатком с недостаточным разрешением или идентификатором, который никогда не регистрировалась принимающей базой данных.

Вывод: создавайте этикетки с цифрами там, где это возможно, а затем создавайте штрих-код с помощью QR & Barcode Toolkit, чтобы проверить его ширину.

Создавайте внутренние идентификаторы с полезными сериями цифр, когда компактность имеет значение, но сохраняйте их понятными для людей, которые должны их вводить. Создайте окончательный шаблон перед размещением этикетки, потому что реальное количество модулей — это ширина, которая имеет значение.

Компактность должна оставаться подчиненной стабильности работы. Более короткий цифровой ключ может сэкономить модули, но непрозрачная последовательность может увеличить количество ошибок транскрипции, когда поврежденную метку придется вводить вручную. Выберите схему, которую смогут использовать сотрудники и программное обеспечение, сгенерируйте репрезентативные крайние значения перед исправлением шаблона этикетки и сохраните тихие зоны вместо того, чтобы освобождать их пустое пространство для близлежащего текста.