PDF417
PDF417, это многострочный 2D-штрихкод на обратной стороне каждого водительского удостоверения США, большинства паспортов США, накладных FedEx/UPS и бесчисленных государственных форм. Это единственная 2D-символика, которую могут надёжно считывать 1D-лазерные сканеры, поэтому организации с многомиллионными парками установленных сканеров не отказались от неё за 30 лет.
Применение AAMVA:AAMVA Card Design Standard v10, обязывает использовать PDF417 для водительских удостоверений США/Канады.
Разработчик: Symbol Technologies (ныне Zebra), 1991. Название означает «Portable Data File, 4 bars, 17 modules.»
Что это такое
Физически символ PDF417 представляет собой стопку горизонтальных строк, каждая строка является линейным штрихкодом. Полноразмерный PDF417 выглядит как высокий узкий кирпич с ~3–90 строками, где каждая строка несёт часть общих данных. Поскольку каждая строка начинается со стартового шаблона и заканчивается стоповым шаблоном, PDF417 может декодироваться лазером, сканирующим слева направо строку за строкой, 2D-имеджер не требуется.
Каждое кодовое слово имеет ширину 17 модулей и состоит из 4 штрихов и 4 пробелов (отсюда «4/17»). Данные распределяются по кодовым словам в одном из трёх режимов уплотнения:
- Уплотнение текста, 1,8 символа/кодовое слово. Для смешанных буквенно-цифровых данных.
- Байтовое уплотнение, 1,2 байта/кодовое слово. Для произвольных двоичных данных.
- Числовое уплотнение, 2,9 цифры/кодовое слово. Для длинных числовых данных (например, комбинации индекс+штат в AAMVA).
Ёмкость (строки × столбцы)
Размер PDF417 задаётся как строки × столбцы данных. Максимум, 90 строк × 30 столбцов данных = 2 700 кодовых слов данных. Приблизительная буквенно-цифровая ёмкость:
| Строки × столбцы данных | Макс. буквенно-цифровых | Типичное применение |
|---|---|---|
| 3 × 1 | ~3 символа | Минимально жизнеспособный символ |
| 10 × 3 | ~30 символов | Короткие идентификаторы, короткие URL |
| 20 × 5 | ~100 символов | Посадочный талон, короткая AAMVA |
| 30 × 8 | ~250 символов | Накладная FedEx |
| 40 × 12 | ~500 символов | Полное водительское удостоверение AAMVA |
| 90 × 30 | ~1 800 символов | Теоретический максимум, используется редко |
Уровни коррекции ошибок (0–8)
PDF417 определяет 9 уровней коррекции ошибок Рида-Соломона, добавляя 2, 4, 8, 16, 32, 64, 128, 256 или 512 кодовых слов ECC. Более высокие уровни справляются с большими повреждениями, но расходуют ёмкость данных.
| Уровень ECC | Кодовые слова ECC | Типичное применение | % накладных расходов |
|---|---|---|---|
| 0 | 2 | Только экспериментальное | ~0,1% |
| 1 | 4 | Короткие коды, контролируемая среда | ~0,2% |
| 2 | 8 | Небольшие данные | ~0,4% |
| 3 | 16 | Средние данные, сканирование в помещении | ~0,8% |
| 4 | 32 | Стандарт для коротких документов | ~1,5% |
| 5 | 64 | Реальный стандарт, накладные, посадочные талоны, AAMVA | ~3% |
| 6 | 128 | Среда с высоким уровнем повреждений | ~6% |
| 7 | 256 | Мятые / уличные / промышленные | ~12% |
| 8 | 512 | Экстремальная среда | ~25% |
Macro PDF417 (многосимвольные данные)
Когда данные превышают лимит в 1 800 символов, PDF417 поддерживает Macro PDF417, данные разделяются на до 99 999 отдельных символов, каждый помечен индексом Macro и идентификатором файла. Сканер считывает все символы в любом порядке, собирает их и выдаёт единый декодированный результат. На практике редко встречается за пределами специализированного сканирования документов.
Канонические тестовые векторы
| Случай | Данные | Ожидаемая подстрока |
|---|---|---|
| Накладная GS1 (стиль FedEx) | 123456789012345 FEDEX 2026-04-20 | FEDEX |
| Водительское удостоверение AAMVA (минимальное) | @\n\x1e\rANSI 636014100002DL00410241ZVZVA01DAQA123456789 | ANSI 636014 |
| Короткий обычный URL | https://example.com/doc/X1234 | example.com/doc/X1234 |
| Длинный чек / счёт | INV:2026-04-19 VENDOR:ACME TOTAL:$1,234.56 TAX:$98.76 … | ACME |
Типичные ошибки
- Камеры потребительских телефонов не декодируют PDF417 надёжно. iOS 17+ имеет специальный поток с поддержкой AAMVA (Wallet распознаёт водительские удостоверения США), но считать это «поддержкой PDF417 в iPhone», заблуждение: он работает только с конкретными данными AAMVA. Поведение Android сильно различается в зависимости от приложения камеры OEM.
- AAMVA обязывает использовать PDF417. AAMVA Card Design Standard (CDS) требует именно PDF417, не QR, не Aztec. Если вы генерируете данные AAMVA, стандарт привязывает вас к этому формату.
- Тихие зоны, 2× ширина модуля. Отличается от QR (4 модуля) и Aztec (нет). PDF417 требует не менее 2 модулей белого пространства слева и справа; неправильная тихая зона, причина №1 сбоев при сканировании легитимных кодов PDF417.
- Соотношение сторон имеет значение. Строки PDF417 по дизайну шире, чем выше. Принудительное квадратное соотношение сторон (масштабированием или печатью на квадратной подложке) нарушает декодирование лазерным сканером; 2D-имеджеры иногда могут справиться.
- Усечённый PDF417. Вариант, в котором отсутствует правый индикатор строки + стоповый шаблон. Экономит ~12% ширины символа, но декодируется только на 2D-имеджерах, лазерным сканерам нужен стоповый шаблон. Используйте только при известном классе сканера.
- Автоматический выбор режима уплотнения. Хорошие кодировщики переключают режим уплотнения в середине данных для эффективности (числовой блок → текстовый блок). Ручные кодировщики с фиксированным режимом расходуют ёмкость впустую. Кодировщик Abundera выбирает автоматически для каждого кодового слова.
- Режим уплотнения и набор символов. Уплотнение текста обрабатывает только печатные символы ASCII. Встроенные NUL, акценты Latin-1 или двоичные данные вынуждают применять байтовое уплотнение, снижая эффективность до 1,2 байта/кодовое слово.
- Стилизация отключена. Функции, характерные для QR (настраиваемые формы точек, градиенты, центральные логотипы), не применяются. Панель стилей Abundera автоматически отключается для PDF417.
Совместимость сканеров
| Устройство считывания | Поддержка PDF417 | Примечания |
|---|---|---|
| Камера iOS (iOS 17+) | Только AAMVA | Нативный поток Wallet для водительских удостоверений США. Общие данные PDF417 не декодируются. |
| Камера Android (зависит от OEM) | Частичная | Стандартные камеры Samsung + Pixel декодируют непоследовательно. Google Lens, частичная поддержка. |
| Google Lens | Ненадёжный | Не является жизнеспособным путём проверки для производства. |
| Сканер DMV США / киоск | Да (канонический) | Именно для этого создан PDF417, каждый DMV и алкогольный киоск считывает его нативно. |
| Считыватель посадочного талона | Отдельные авиакомпании | Большинство перешли на Aztec; некоторые (ANA, JAL, устаревшие американские перевозчики) всё ещё принимают PDF417. |
| Считыватель накладных FedEx / UPS | Да (канонический) | Лазерные сканеры на каждом сортировочном объекте считывают PDF417 нативно. |
| 1D-лазерный сканер | Да | Уникальное преимущество перед Aztec / Data Matrix, 1D-лазеры МОГУТ декодировать PDF417. |
| Имеджер Zebra / Honeywell / Datalogic | Да | Каждый промышленный 2D-имеджер поддерживает PDF417. |
| Scandit / Dynamsoft SDK | Да | Полная поддержка, включая Macro PDF417. |
Смотрите также
- /pdf417-barcode-generator/, генератор PDF417.
- Справочник AAMVA, канонический случай применения PDF417 (водительские удостоверения США). Обязателен по спецификации.
- Сравнение Aztec · PDF417 · Data Matrix, сравнение рядом.
- Справочник Aztec, формат, ориентированный на экран, для посадочных талонов и транспорта.
- Справочник Data Matrix, формат для прямой маркировки деталей.
- Индекс стандартов, вернуться к справочному центру.