PDF417
PDF417 to warstwowy dwuwymiarowy kod kreskowy na odwrocie każdego amerykańskiego prawa jazdy, większości paszportów USA, listów przewozowych FedEx/UPS i niezliczonych dokumentów rządowych. To jedyna symbolika 2D niezawodnie odczytywana przez 1D skanery laserowe, dlatego instytucje z wielomilionowymi flotami skanerów nie odeszły od niej przez 30 lat.
Zastosowanie AAMVA:AAMVA Card Design Standard v10, nakazuje stosowanie PDF417 w prawie jazdy USA/Kanady.
Twórca: Symbol Technologies (obecnie Zebra), 1991. Nazwa oznacza „Portable Data File, 4 bars, 17 modules."
Czym to jest
Fizycznie symbol PDF417 to stos poziomych rzędów, każdy rząd jest liniowym kodem kreskowym. Pełnowymiarowy PDF417 wygląda jak wysoka wąska cegła z ~3–90 rzędami, gdzie każdy rząd niesie fragment całego ładunku. Ponieważ każdy rząd zaczyna się od wzorca startowego i kończy wzorcem stopu, PDF417 może być dekodowany przez laser skanujący od lewej do prawej rząd po rzędzie, nie jest wymagany żaden imager 2D.
Każde słowo kodowe ma 17 modułów szerokości, złożone z 4 kresek i 4 spacji (stąd „4/17"). Ładunek jest dzielony na słowa kodowe za pomocą jednego z trzech „trybów kompakcji":
- Kompakcja tekstu, 1,8 znaku/słowo kodowe. Dla mieszanych znaków alfanumerycznych.
- Kompakcja bajtów, 1,2 bajtu/słowo kodowe. Dla dowolnych danych binarnych.
- Kompakcja numeryczna, 2,9 cyfry/słowo kodowe. Dla długich ładunków numerycznych (jak kombinacje kodu pocztowego+stanu AAMVA).
Pojemność (rzędy × kolumny)
Rozmiar PDF417 jest podawany jako rzędy × kolumny danych. Maksimum to 90 rzędów × 30 kolumn danych = 2 700 słów kodowych danych. Przybliżona pojemność alfanumeryczna:
| Rzędy × kolumny danych | Maks. alfanumerycznie | Typowe zastosowanie |
|---|---|---|
| 3 × 1 | ~3 znaki | Minimalnie wykonalny symbol |
| 10 × 3 | ~30 znaków | Krótkie ID, krótkie URL |
| 20 × 5 | ~100 znaków | Karta pokładowa, krótka AAMVA |
| 30 × 8 | ~250 znaków | List przewozowy FedEx |
| 40 × 12 | ~500 znaków | Pełne prawo jazdy AAMVA |
| 90 × 30 | ~1 800 znaków | Teoretyczne maksimum, rzadko używane |
Poziomy korekcji błędów (0–8)
PDF417 definiuje 9 poziomów korekcji błędów Reed-Solomona, dodając 2, 4, 8, 16, 32, 64, 128, 256 lub 512 słów kodowych ECC. Wyższe poziomy radzą sobie z większymi uszkodzeniami, ale kosztem pojemności ładunku.
| Poziom ECC | Słowa kodowe ECC | Typowe zastosowanie | % narzut |
|---|---|---|---|
| 0 | 2 | Tylko eksperymentalne | ~0,1% |
| 1 | 4 | Krótkie kody, środowisko kontrolowane | ~0,2% |
| 2 | 8 | Małe ładunki | ~0,4% |
| 3 | 16 | Średnie ładunki, skanowanie wewnątrz | ~0,8% |
| 4 | 32 | Domyślny dla krótkich dokumentów | ~1,5% |
| 5 | 64 | Domyślny w praktyce, listy przewozowe, karty pokładowe, AAMVA | ~3% |
| 6 | 128 | Środowiska dużych uszkodzeń | ~6% |
| 7 | 256 | Pomięte / zewnętrzne / przemysłowe | ~12% |
| 8 | 512 | Środowiska ekstremalne | ~25% |
Macro PDF417 (ładunki wielosymbolowe)
Gdy ładunek przekracza limit 1 800 znaków, PDF417 obsługuje Macro PDF417, ładunek jest dzielony na do 99 999 osobnych symboli, każdy oznaczony indeksem Macro i identyfikatorem pliku. Skaner odczytuje wszystkie symbole w dowolnej kolejności, składa je ponownie i emituje jeden zdekodowany ładunek. W praktyce rzadkie poza specjalistycznym skanowaniem dokumentów.
Kanoniczne wektory testowe
| Przypadek | Ładunek | Oczekiwany podciąg |
|---|---|---|
| List przewozowy GS1 (styl FedEx) | 123456789012345 FEDEX 2026-04-20 | FEDEX |
| Prawo jazdy AAMVA (minimalne) | @\n\x1e\rANSI 636014100002DL00410241ZVZVA01DAQA123456789 | ANSI 636014 |
| Krótki zwykły URL | https://example.com/doc/X1234 | example.com/doc/X1234 |
| Długi paragon / faktura | INV:2026-04-19 VENDOR:ACME TOTAL:$1,234.56 TAX:$98.76 … | ACME |
Typowe pułapki
- Konsumenckie aparaty telefoniczne nie dekodują PDF417 niezawodnie. iOS 17+ ma specjalny przepływ świadomy AAMVA (Wallet rozpoznaje amerykańskie prawa jazdy), ale traktowanie tego jako „iPhone obsługuje PDF417" jest mylące, dotyczy tylko konkretnego ładunku AAMVA. Zachowanie Androida różni się znacznie zależnie od aplikacji aparatu OEM.
- AAMVA nakazuje PDF417. AAMVA Card Design Standard (CDS) wymaga konkretnie PDF417, nie QR, nie Aztec. Jeśli generujesz ładunki AAMVA, standard cię do tego obliguje.
- Strefy spokojne mają 2× szerokość modułu. Inaczej niż QR (4 moduły) i Aztec (brak). PDF417 potrzebuje co najmniej 2 modułów białej przestrzeni na lewej i prawej krawędzi; nieprawidłowa strefa spokojna to powód nr 1 niepowodzeń legalnych kodów PDF417 podczas skanowania.
- Proporcje mają znaczenie. Rzędy PDF417 są z założenia szersze niż wysokie. Wymuszanie kwadratowych proporcji (przez skalowanie lub druk na kwadratowym podłożu) niszczy dekodowanie przez skaner laserowy; imagery 2D czasami mogą się odtworzyć.
- Skrócony PDF417. Wariant pomijający prawy wskaźnik rzędu + wzorzec stopu. Oszczędza ~12% szerokości symbolu, ale dekoduje tylko na imagerach 2D, skanery laserowe potrzebują wzorca stopu. Używaj tylko gdy znasz klasę skanera.
- Automatyczny wybór trybu kompakcji. Dobre kodery przełączają kompakcję w połowie ładunku dla wydajności (blok numeryczny → blok tekstowy). Ręczne kodery zablokowane na jednym trybie marnują pojemność. Koder Abundera wybiera automatycznie dla każdego słowa kodowego.
- Tryb kompakcji i zestaw znaków. Kompakcja tekstu obsługuje tylko drukowalne ASCII. Osadzone NUL, akcenty Latin-1 lub dane binarne wymuszają Kompakcję bajtów, która obniża wydajność do 1,2 bajtu/słowo kodowe.
- Stylizacja wyłączona. Funkcje specyficzne dla QR (niestandardowe kształty kropek, gradienty, centralne logo) nie mają zastosowania. Panel Styl Abundera wyłącza się automatycznie dla PDF417.
Kompatybilność skanerów
| Czytnik | Obsługa PDF417 | Uwagi |
|---|---|---|
| Aparat iOS (iOS 17+) | Tylko AAMVA | Natywny przepływ Wallet dla amerykańskich praw jazdy. Ogólne ładunki PDF417 nie są dekodowane. |
| Aparat Android (zależny od OEM) | Częściowy | Standardowe aparaty Samsung + Pixel dekodują niespójnie. Google Lens częściowo. |
| Google Lens | Nierzetelny | Nie jest wykonalną ścieżką weryfikacji dla produkcji. |
| Skaner DMV USA / kiosk | Tak (kanoniczny) | Do tego PDF417 został zaprojektowany, każde DMV i kiosk z alkoholem czyta PDF417 natywnie. |
| Czytnik karty pokładowej linii lotniczych | Niektóre linie | Większość przeszła na Aztec; niektóre (ANA, JAL, starsze linie USA) nadal przyjmują karty pokładowe PDF417. |
| Czytnik listu przewozowego FedEx / UPS | Tak (kanoniczny) | Skanery laserowe w każdym obiekcie sortowania czytają PDF417 natywnie. |
| 1D skaner laserowy | Tak | Unikalna zaleta wobec Aztec / Data Matrix, 1D lasery MOGĄ dekodować PDF417. |
| Imager Zebra / Honeywell / Datalogic | Tak | Każdy przemysłowy imager 2D obsługuje PDF417. |
| Scandit / Dynamsoft SDK | Tak | Pełna obsługa w tym Macro PDF417. |
Zobacz też
- /pdf417-barcode-generator/, generator PDF417.
- Referencja AAMVA, kanoniczny przypadek użycia PDF417 (prawa jazdy USA). Wymagane przez specyfikację.
- Porównanie Aztec · PDF417 · Data Matrix, porównanie obok siebie.
- Referencja Aztec, symbol zorientowany na wyświetlanie, dla kart pokładowych i transportu.
- Referencja Data Matrix, symbol do bezpośredniego znakowania części.
- Indeks standardów, powrót do centrum referencyjnego.