Символ PDF-417 состоит из нескольких (от 3 до 90) строк, выровненных по вертикали. Любая строка должна содержать не менее одного знака символа (но не более 30), без учета столбцов знаков СТАРТ, СТОП, и столбцов индикатора строк. Символ должен включать свободные зоны со всех четырех сторон.
Каждая строка должна содержать:
- начальную свободную зону;
- знак СТАРТ;
- знак символа левого индикатора строки;
- от 1 до 30 знаков символа;
- знак символа правого индикатора строки;
- знак СТОП;
- конечную свободную зону.
Знак символа PDF-417 состоит из четырех штрихов и четырех пробелов между ними. Ширина каждого штриха или пробела может быть от 1 до 6 модулей. Совокупная ширина 4 штрихов и 4 пробелов должна составлять 17 модулей.
Последовательность знаков символа может быть длиной до 928 элементов (знаков символа). Каждый из них соответствует своему кодовому слову. Кодовое слово - числовое представление знака символа. Каждое кодовое слово может являться числом от 0 до 928.
Подробнее структура и формирование символов штрих-кода PDF-417 определено в документе: ГОСТ Р 51294.9-2002 (ИСО/МЭК 15438-2001) "Автоматическая идентификация. Кодирование штриховое. Спецификация символики РDF417(ПДФ417)".
Для печати штрих-кода PDF-417 используется шрифт "PDF 417 Font".
Символы этого шрифта содержат штрихи и пробелы различной ширины (от 1 до 6 модулей). Кроме того, среди символов шрифта есть знаки СТАРТ и СТОП.
Соответствие символов шрифта и кодов ASCII приведено в таблице 2.
Таблица 2
Символ | Символ PDF-417 Font |
1 | штрих, шириной 1 модуль |
2 | штрих, шириной 2 модуля |
3 | штрих, шириной 3 модуля |
4 | штрих, шириной 4 модуля |
5 | штрих, шириной 5 модулей |
6 | штрих, шириной 6 модулей |
А | пробел, шириной 1 модуль |
В | пробел, шириной 2 модуля |
С | пробел, шириной 3 модуля |
D | пробел, шириной 4 модуля |
Е | пробел, шириной 5 модулей |
F | пробел, шириной 6 модулей |
+ | знак СТАРТ |
- | знак СТОП |
Последовательность печатных символов, полученная на этапе формирования информационной строки (см. п.3), преобразуется в соответствии с алгоритмом PDF-417, с учетом следующих ограничений:
1. Вся последовательность кодируется в режиме байтового кодирования.
2. Уровень коррекции ошибок принимается равным 3.
3. Количество столбцов знаков символа PDF-417 равно 5.
В результате получается строка ASCII символов, состоящая из секций, разделенных символами #13#10. Каждая секция представляет собой одну строку символа PDF-417. Каждая секция начинается с ASCII символа '+' (знак СТАРТ) и заканчивается ASCII символом '-' (знак СТОП). Между ними находится последовательность знаков символа PDF-417 (в соответствии со спецификацией символики PDF-417), каждый из которых представлен восемью ASCII символами. В этой последовательности из 8 символов на нечетных местах стоят цифры от 1 до 6 (при печати шрифтом "PDF 417 Font" будут напечатаны штрихи соответствующей ширины), на четных местах стоят буквы от А до Н (при печати шрифтом "PDF 417 Font" будут напечатаны пробелы соответствующей ширины).
Таким образом, если полученную строку напечатать шрифтом "PDF 417 Font", можно получить символ штрих-кода PDF-417.