Двухмерный 2d штрих-код PDF417
Статья "Символика PDF417: рекомендации пользователю"
Символика штрихового кода PDF417 представляет хорошие возможности для кодирования пользовательских данных в компактном и удобном для автоматического считывания и виде. Для того, чтобы обеспечить высокий уровень надёжности считывания конкретного символа PDF417 сканерами штриховых кодов, при задании его параметров перед печатью необходимо учитывать ряд рекомендаций. Разделим их на две группы:
1) Рекомендации на относительные размеры элементов штрихового кода;
2) Рекомендации по выбору уровня коррекции ошибок.
1) Рекомендации на относительные размеры элементов штрихового кода.
Каждый символ PDF417 представляет собой прямоугольную матрицу, составленную из знаков символа, каждому из которых соответствует кодовое слово - число от 0 до 928. Знак символа - это последовательность из четырёх штрихов и четырёх пробелов, ширины которых кратны некоторой величине, называемой шириной модуля или просто модулем. Ширины всех штрихов и пробелов знака могут быть от 1 до 6 модулей, а совокупная ширина всех его элементов должна равняться 17 модулям.
Значение ширины модуля должно быть одним и тем же для всех знаков данного символа. Высотой модуля называется высота одной строки символа PDF417. Все строки должны иметь одинаковую высоту. ГОСТ, описывающий спецификацию символики PDF417, рекомендует следующие соотношения между шириной (X) и высотой (Y) модуля:
а) для символов, уровень коррекции ошибок в которых не меньше минимального рекомендуемого (см. пункт 2): Y ≥ 3X;
б) для символов, уровень коррекции ошибок в которых меньше минимального рекомендуемого: Y ≥ 4X;
Также желательно, чтобы во всех случаях Y ≤ 6X.
Ниже изображены три символа PDF417, в которых закодированы одни и те же данные, но в первых двух из них не учтены приведённые выше рекомендации, в связи с чем их автоматическое считывание может быть затруднено:
В последнем символе рекомендации учтены, он хорошо подходит для автоматического сканирования:
Важно, чтобы вокруг символа PDF417 была оставлена свободная зона - область цвета фона, свободная от изображений и надписей. ГОСТ рекомендует, чтобы ширина свободной зоны, окаймляющей символ PDF417 по периметру, была равна 2X.
2) Рекомендации по выбору уровня коррекции ошибок.
Спецификация символики PDF417 предполагает возможность коррекции ошибок или, иначе говоря, возможность полноценного считывания частично повреждённого символа. Повреждением мы называем любое искажение символа, вызванное плохим качеством печати, попаданием грязи, перекрытием его другими объектами, а также неудачными условиями сканирования (ракурс, освещение, расстояние до сканера) и другими явлениями, из-за которых изображение символа PDF417, получаемое сканером, будет некачественным. Коррекция ошибок реализуется за счёт того, что в символе кодируются не только пользовательские данные, но ещё и специальная последовательность кодовых слов, называемых кодовыми словами коррекции ошибок.
В спецификации PDF417 предусмотрены 9 уровней коррекции ошибок, каждому из которых соответствует своё количество кодовых слов коррекции ошибок. Если s = 0…8 – это уровень коррекции ошибок, то соответствующее ему количество кодовых слов равно 2(s+1). Создание этой последовательности осуществляет конкретный генератор символов PDF417. Уровень коррекции ошибок задаётся пользователем. Чем выше уровень коррекции, тем большие повреждения символа допустимы при сохранении возможности считывания. Например, при s = 0 считывание становится невозможным при повреждении даже одного знака символа (см. пункт 1), тогда как уровень s = 4 гарантирует считывание символа, в котором повреждено до 15 знаков символа, а в некоторых случаях и до 30.
ГОСТ содержит рекомендации по выбору уровня коррекции ошибок в зависимости от количества кодовых слов, содержащих пользовательские данные.
Количество кодовых слов пользовательских данных | Минимальный уровень коррекции ошибок |
От 1 до 40 | 2 |
От 41 до 160 | 3 |
От 161 до 320 | 4 |
От 321 до 863 | 5 |
Необходимое количество кодовых слов пользовательских данных можно приблизительно вычислить исходя из характера данных, следуя рекомендациям:
а) если данные представляют собой только последовательность цифр, то искомое количество кодовых слов данных будет примерно равно количеству цифр, делённому на 2.9;
б) если данные являются текстовыми, то количество кодовых слов можно оценить как количество текстовых знаков, делённое на 1.8;
в) в остальных случаях примерное количество кодовых слов данных будет равно размеру пользовательских данных в байтах, делённому на 1.2.
Это лишь общие рекомендации. Более предпочтительным является обеспечение высокого качества печати символа, по сравнению с компенсацией низкого качества печати увеличением уровня коррекции ошибок.
При высокой вероятности появления в символе PDF417 повреждённых или полностью стёртых знаков символа, уровень коррекции ошибок может быть увеличен, в том числе до уровня 8. Однако, в этом случае есть риск того, что в силу ограничений на общее количество кодовых слов в символе PDF417, закодировать в одном символе все пользовательские данные и последовательность кодовых слов коррекции ошибок, соответствующую выбранному уровню коррекции, окажется невозможным. В этом случае рекомендуется использовать предусмотренный спецификацией режим Макро PDF417, представляющий собой механизм разделения данных на блоки и представления их в виде набора из нескольких символов PDF417, или обратиться к другим двумерным символикам, которые позволяют более эффективно кодировать большие объёмы данных. Например, символика Aztec примерно на 40% эффективнее PDF417 кодирует цифровые данные.
Пример использования двухмерного штрих-кода PDF417 в налоговом документе:
На сайте www.vmc-id.com вы можете найти следующую дополнительную информацию по теме "Двухмерный штрих-код PDF417":