- "cichej" strefy,
- znaku startowego,
- lewego wskaźnika wiersza,
- danych (1 do 30 kolumn/znaków symbolu),
- prawego wskaźnika wiersza,
- znaku stop,
- "cichej" strefy.


Struktura
PDF-417 jest kodem modularnym. Zbudowany jest z odcinków danych zwanych słowami. Każdy znak symbolu składa się z 4 jasnych i 4 ciemnych kresek, z których każdy musi mieć szerokość do 6 modułów (w całości powinien zawierać nie więcej niż 17 modułów).
Symbol może zawierać od 3 do 90 rzędów znaków, a w każdym z nich umieścić można od 1 do 30 słów kodowych.
Każdy wiersz w kodzie PDF-417 składa się z:
Tekst towarzyszący
Symbole PDF-417 mogą zakodować ogromną ilość informacji, co powoduje, że czytelna dla człowieka reprezentacja tych danych (ang. Human Readable Interpretation) staje się niepraktyczna. Z tego względu, symbolowi może towarzyszyć tekst o charakterze bardziej opisowym niż dosłownym. Może on być wydrukowany gdziekolwiek na powierzchni otaczającej symbol, ale nie powinien nachodzić na sam symbol, ani na ciche strefy wokół niego
Słowa kodowe
- Słowa kodowe powinny mieć następującą sekwencję: Symbol opisu długości - zawsze powinien kodować całkowitą liczbę słów kodowych w symbolu włączając sam symbol opisu długości, słowa kodujące dane i uzupełniające słowa kodowe, ale wyłączając liczbę słów kodowych do korekcji błędów.
- Słowa kodowe dla danych, zaczynając od najbardziej znaczącego znaku możliwego do zakodowania. Różnego rodzaju specjalne znaki mogą być umieszczane w celu uzyskania kompresji danych. Uzupełniające słowa kodowe, które pozwalają na to, aby sekwencja słów kodowych reprezentowana była jako macierz prostokątna. Uzupełniające słowa kodowe mogą zostać także wykorzystane do wypełnienia dodatkowych wierszy w celu osiągnięcia żądanej lub wyszczególnionej w programie proporcji wymiarów macierzy.
- Opcjonalne korekcyjne słowa kodowe dla korekcji błędów.
- Dwa korekcyjne słowa kodowe dla detekcji błędów.
Detekcja i korekcja błędów
Detekcja błędów w kodzie PDF-417 jest odpowiednikiem znaku sumy kontrolnej w symbolikach linearnych. Dwa słowa kodowe są zawsze umieszczane w każdym kodzie kreskowym PDF-417. Detekcja błędów definiowana jest w PDF-417 jako korekcja błędów na poziomie 0 i jest stosowana dla wszystkich poziomów korekcji błędów.
Korekcja błędów może być wykorzystywana do uzupełniania danych, które z różnych powodów nie zostały przeczytane przez czytnik. Dla danego poziomu korekcji błędów, określona liczba słów kodowych korekcji błędów jest wstawiana do symbolu kodu. Wykorzystywany algorytm korekcji błędów pozwala na korekcję dwóch rodzajów błędów:
Zaleca się, aby używać poziomów korekcji możliwie jak najmniejszych, gdyż wraz ze wzrostem poziomu korekcji wzrasta liczba dodatkowych informacji koniecznych do zakodowania w symbolu kodu kreskowego. Zalecane minimalne poziomy zabezpieczeń w zależności od liczby znaków są przedstawione w tabeli poniżej.
Korekcja błędów może być wykorzystywana do uzupełniania danych, które z różnych powodów nie zostały przeczytane przez czytnik. Dla danego poziomu korekcji błędów, określona liczba słów kodowych korekcji błędów jest wstawiana do symbolu kodu. Wykorzystywany algorytm korekcji błędów pozwala na korekcję dwóch rodzajów błędów:
- wykasowanie - czyli brakujące lub niemożliwe do zdekodowania słowo kodowe (pozycja słowa kodowego jest znana, natomiast jego wartość nie),
- zamiana wartości na inną - oznacza błędne zdekodowanie słowa kodowego (zarówno pozycja jak i wartość słowa kodowego jest nieznana).
| Poziom korekcji błędów | Wymagana liczba słów kodowych | ||
| Korekcja błędów | Detekcja błędów | Całkowita liczba słów kodowych korygujących błędy | |
| 0 | 0 | 2 | 2 |
| 1 | 2 | 2 | 4 |
| 2 | 6 | 2 | 8 |
| 3 | 14 | 2 | 16 |
| 4 | 30 | 2 | 32 |
| 5 | 62 | 2 | 64 |
| 6 | 126 | 2 | 128 |
| 7 | 254 | 2 | 256 |
| 8 | 510 | 2 | 512 |
Zaleca się, aby używać poziomów korekcji możliwie jak najmniejszych, gdyż wraz ze wzrostem poziomu korekcji wzrasta liczba dodatkowych informacji koniecznych do zakodowania w symbolu kodu kreskowego. Zalecane minimalne poziomy zabezpieczeń w zależności od liczby znaków są przedstawione w tabeli poniżej.
| Liczba słów kodowych | Minimalny poziom korekcji błędów |
| 1-40 | 2 |
| 41-160 | 3 |
| 161-320 | 4 |
| 321-863 | 5 |
MicroPDF417
MicroPDF417 jest kodem kreskowym opartym na kodzie PDF-417. Został on zaprojektowany do zastosowań wymagających oszczędności powierzchni fizycznej, jaką zajmuje kod, kosztem pojemności kodu.
Kod MicroPDF417 pozwala na zakodowanie 150 bajtów, 250 znaków alfanumerycznych lub 366 cyfr. MicroPDF417 ma wiele z tych samych właściwości, co kod PDF-417, wliczając tryby kodowania, korekcję błędów oraz zestawy znaków. Cechą odróżniającą ten kod od jego pierwowzoru jest fakt, że symbol może mieć jedynie określone kombinacje słów kodowych w wierszach, kolumnach i korygujących błędy. Maksymalne wymiary wynoszą do 4 kolumn danych na 44 wiersze.
Wzór start/stop o szerokości 17 modułów występujący w PDF-417, w kodzie MicroPDF417 został zastąpiony unikalnym zestawem wzorów adresowania wiersza (ang. Row Address Patterns) o szerokości 10 modułów, zaprojektowanymi w celu zmniejszenia całkowitej wielkości symbolu, a także radzenia sobie ze skanowaniem liniowym dla małych wysokości wierszy rzędu 2X.
Ciekawą możliwością kodu MicroPDF417 jest skanowanie skrośne (ang. cross-row scanning). Polega to na skanowaniu skanerem liniowym kilku wierszy i częściowym dekodowaniu danych tak długo, dopóki przynajmniej jeden kompletny znak symbolu na wiersz jest poprawnie dekodowany do swojego słowa kodowego. Następnie algorytm dekodujący jest w stanie połączyć wiele pojedynczych słów kodowych w całość. Jest to możliwe dzięki:
Kod MicroPDF417 pozwala na zakodowanie 150 bajtów, 250 znaków alfanumerycznych lub 366 cyfr. MicroPDF417 ma wiele z tych samych właściwości, co kod PDF-417, wliczając tryby kodowania, korekcję błędów oraz zestawy znaków. Cechą odróżniającą ten kod od jego pierwowzoru jest fakt, że symbol może mieć jedynie określone kombinacje słów kodowych w wierszach, kolumnach i korygujących błędy. Maksymalne wymiary wynoszą do 4 kolumn danych na 44 wiersze.
Wzór start/stop o szerokości 17 modułów występujący w PDF-417, w kodzie MicroPDF417 został zastąpiony unikalnym zestawem wzorów adresowania wiersza (ang. Row Address Patterns) o szerokości 10 modułów, zaprojektowanymi w celu zmniejszenia całkowitej wielkości symbolu, a także radzenia sobie ze skanowaniem liniowym dla małych wysokości wierszy rzędu 2X.
Ciekawą możliwością kodu MicroPDF417 jest skanowanie skrośne (ang. cross-row scanning). Polega to na skanowaniu skanerem liniowym kilku wierszy i częściowym dekodowaniu danych tak długo, dopóki przynajmniej jeden kompletny znak symbolu na wiersz jest poprawnie dekodowany do swojego słowa kodowego. Następnie algorytm dekodujący jest w stanie połączyć wiele pojedynczych słów kodowych w całość. Jest to możliwe dzięki:
- synchronizacji poziomej,
- identyfikacji wiersza,
- synchronizacji pionowej przy użyciu wartości klastrowych w celu rozróżnienia lokalnego wiersza.
Zastosowanie
Kod kreskowy PDF-417 jest szeroko stosowany. Lista potencjalnych zastosowań jest długa i obejmuje:
- kodowanie specyfikacji technicznych,
- transport i spedycję,
- dokumenty tożsamości - także przepustki,
- kodowanie odcisków palców i fotografii na tylnej stronie prawa jazdy w USA,
- kontrolę niebezpiecznych artykułów,
- kontrolę jakości i wiele innych.
Przykłady
300 znaków ASCII.

500 znaków alfanumerycznych.

366 cyfr.

Przykład wygenerował program HDF® BarCode System.



