¿Te gustan los códigos? Bueno, o no lo ames. En cualquier caso, a veces necesita saber cómo usarlos correctamente. Puedes recorrer el camino largo, como hice la última vez , pero cuando no hay tiempo, es más fácil usar las instrucciones.
Entonces, tratemos con todo lo que necesita para leer y / o escribir PDF417. Después de todo, no siempre está a la mano encontrar un teléfono inteligente con un programa para leerlos. Y para que conste, y aún más.
Atención, debajo del corte: 9 imágenes con un tamaño total de 2,79 MB, 6 tablas y algunas fórmulas.
Tabla de contenido
01. Historia de PDF417 y derecho de uso
( Atrás | Tabla de contenido | Adelante )
PDF417 inventado por Symbol Technologies Inc. en 1991 y el 7 de septiembre de 1993, se le otorgó una patente estadounidense con el número 5,243,655 (disponible, por ejemplo, aquí ). De hecho, la patente describe no solo un método de codificación, sino un sistema integral para codificar y decodificar datos ( "Sistema para codificar y decodificar datos en forma gráfica legible por máquina" ). Además, no todas las recomendaciones de la patente se utilizan actualmente.
, PDF417 , .
: ISO/IEC 15438:2015, PDF417, — 198 CHF ( ). , . , , .
02.
( | | )
() PDF417 (. 1) — , . , ( ) . ().
, . PDF417 3 90 , 3 30 .

. 1. PDF417
17 ( ), 4 4 . 1 6 .
(). 3 (), "", "". , , . .
PDF417 . , , — , — . (. 2), .
:
,
,
— 9.
, 3 , 9 , . : .
PDF417 929 ( 000
928
).
03.
( | | )
(. 2):

. 2. PDF417
, , ( 900
, ), .
04.
( | | )
, PDF417 000
928
. , 2 787 .
000
899
.
900 : 928
— (. 1). 900
, 901
, 902
, 913
924
, .
. 1. PDF417. ,
PDF macro PDF417 . , ( ) .
ECI / GLI — Extended Channel Interpretation / Global Label Identifier — , . , ( , GLI 0, ), .
04.a) (TC, Text Compaction Mode)
( | | )
PDF417 ( ). 4 :
- Alpha ( );
- Lower case;
- Mixed;
- Punctuation.
. 2. GLI 0
al
, ll
, ml
pl
— alpha, lower case, mixed punctuation (l = latch
);as
ps
— alpha punctuation (s = shift
) .
900 2 :
,
— 900, — , — . .
, , -, - 29.
shift- . latch- .
04.b) - (BC, Byte Compaction Mode)
( | | )
900. 256. :
, 6 5 256 900. , 0x01
, 0x02
, 0x03
, 0x04
, 0x05
, 0x06
, (. 3).

. 3. , -
:
924
, 001
, 620
, 089
, 074
, 846
.
6, 6 5 , — . , 0x01
, 0x02
, 0x03
, 0x04
, 0x05
, 0x06
, 0x07
, 0x08
, 0x09
:
901
, 001
, 620
, 089
, 074
, 846
, 007
, 008
, 009
.
, - 913
.
04.c) (NC, Numeric Compaction Mode)
( | | )
10 900. , 0 9. , 44 15 .
902
. , 13 . , 3 ( , 2.93) , , (2 ).
900 1 , . 4. , 1 .

. 4. ,
05.
( | | )
. PDF417 2 . , , (. 3).
. 3. PDF417
:
- , (erasures), " ";
- , , (errors), " ".
:
;
;
;
.
:
2 , , , .
Error Correction Capacity, , . , , . , , , :
.
2 , . 2 .
, , 13 , 7 , , (9 2 ..).
- . .
(. 4).
. 4.
( | | )
( 03), PDF417.
, , . , , , , , (. 5).

. 5.
07.
( | | )
x-, 17- GitHub
( 02), PDF417 3 (0, 3 6) 929 . 17- , x-. , , , , . 5.
. 5. 20 x-
08. 8-
( | | )
GLI 0
ASCII 0:127. 128:255 PC 437.
. 6. GLI 0, PDF417
GLI 1
ISO 8859-1 ().
09. PDF417,
( | | )
PDF417 .
, , PDF417 - -, x- 81111113 711311121 (18 ) .
, PDF417 (. 6). , - -.

. 6. 0 PDF417
10.
( | | )
. ( 0, 0). , 19 (. 7). , , ( , , 06). , 1 -, 18 - 8 , 27, .
. , .

. 7. ,
11. PDF417
( | | )
, 000
928
(. 8). , , .

. 8.
— 900 : 928
. . 8, . , (TC, 04.a).
12.
( | | )
, , 2 :
30, — 30.
:
(27)(07) (19)(19) (15)(18) (28)(14) (19)(19) (28)(07) (27)(00) (01)(17) (29)(17) (02)(14) (12)(29) (19)(15) (14)(18) (19)(28) (19)(05) (00)(00) (09)(06) (02)(29)
( . 2):
(ll)https(ml)://(al)H(ll)abr(ps).com(ps)/post(ml)/500962(ps)
(ll)
, (ml)
, (al)
(ps)
04.a.
:
https://Habr.com/post/500962
, . 8 ( 05).
13.
( | | )
— . .
, . , 3 . , ( ).
, — , ( 02). PDF417 , ( ..), , , — . , .
. , , ( ). .
14.
( | | )
, , .
1. P -
2. , (900)
3. N - , , P
4. N ≥ 13
5. (902)
6.
7. P
8. 3
9. N < 13
10. T - ,
.
(901, 902, 913, 924)
13 .
11. T ≥ 5
12. (900)
13.
14. P
15. 3
16. T < 5
17. B - ,
P. 11
4.
18. B == 1 & -
19. 1 (913)
20.
21. P
22. 3
23.
24. (901 924
, 04.b)
25.
26. P
27. 3
15. ,
( | | )
, PDF417 , . , ( , . 4). , .
, PDF417 " ", 2 .
:
— ;
— ;
— ;
— ;
— ();
— ;
— ( ).
16. () PDF417
( | | )
PDF417 "" ( ), PDF417 (Truncated PDF417, . 9).
:
34 15 :
. 9. PDF417 ( , )
, :
17.
( | | )
PDF417
18.
( | | )
, PDF417. (, , ) , .
, step by step:
, , , ( PDF417).
, , - . , .
!
PD: si encuentra errores tipográficos o errores en el texto, hágamelo saber. Esto se puede hacer resaltando parte del texto y presionando " Ctrl / ⌘ + Enter ", si tiene Ctrl / ⌘, o mediante mensajes privados . Si ambas opciones no están disponibles, escriba sobre los errores en los comentarios. ¡Gracias!