ESCANEO DEL CODIGO PDF417 DEL DNI (Documento Nacional de Identidad digital)
PARSEO DEL CODIGO PDF417 DEL DNI
A partir de una lectora de codigo de barras 2D podemos leer y extraer los datos de un DNI para incorporarlos en nuestra base de datos sin necesidad de tipear los mismos en el teclado.
El código incluido en el frente de la credencial, es del tipo PDF417 e incluye los siguientes campos separados por un carácter @:
- Número de Tramite
- Apellidos (ambos separados por un espacio)
- Nombres (ambos separados por un espacio)
- Sexo (M / F)
- Número de DNI
- Ejemplar
- Fecha Nacimiento (DD/MM/AAAA)
- Fecha de Emisión del documento (DD/MM/AAAA)
- Inicio y fin de CUIL (3 caracteres, los 2 que van antes del primer guión y el último que va luego del segundo guión)
Esperamos que esta información les sea de utilidad y cualquier consulta si esta a nuestro alcance con gusto les responderemos.
A partir de una lectora de codigo de barras 2D podemos leer y extraer los datos de un DNI para incorporarlos en nuestra base de datos sin necesidad de tipear los mismos en el teclado.
- Número de Tramite
- Apellidos (ambos separados por un espacio)
- Nombres (ambos separados por un espacio)
- Sexo (M / F)
- Número de DNI
- Ejemplar
- Fecha Nacimiento (DD/MM/AAAA)
- Fecha de Emisión del documento (DD/MM/AAAA)
- Inicio y fin de CUIL (3 caracteres, los 2 que van antes del primer guión y el último que va luego del segundo guión)
Sin duda que escanear el DNI y poder extraer los datos de apellido, nombre, sexo, número de documento y fecha de nacimiento sin tipearlos en el teclado tiene ventajas notables. El tipeo en el teclado siempre tiene un importante porcentaje de error humano con la consiguiente generación de registros erróneos. El problema es que el PDF417 en el modo texto solo soporta los caracteres ASCII imprimibles, los que llegan a 127 (la "ñ" es un caracter ASCII extendido).
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSdRaLmkttaFCAK7E_CXLADeORRBI-8jzeZTHOz1yigg9pNSlMSB1Mcizcwq0omuwO4gyaT9rtReaoasbfkgJsOgoxhR1Xyffq3povp8aoZuKaRfRJZre5yBesuf-EOIEPJGII4kjrUV4/s1600/00917eg54dfrerruiftritr.jpg)
Cada palabra de código representa dos dígitos de base-30 que son usados por un sistema de cuatro submodos para representar los caracteres ASCII imprimibles (más retorno de carro, nueva línea y tabulador):
- Mayúsculas: A-Z, espacio, cambiar a minúsculas, cambiar a mixto e interpretar el siguiente dígito como puntuación.
- Minúsculas: a-z, espacio, interpretar el siguiente dígito como mayúsculas, cambiar a mixto, interpretar el siguiente dígito como puntuación
- Mixto: 0, &, retorno de carro, tabulador, coma,:, #, -, punto, $, /, +,%, *, =, ^, cambiar a puntuación, espacio, cambiar a minúsculas, cambiar a mayúsculas, interpretar el siguiente dígito como puntuación.
- Puntuación: ;, <, >, @, [, \, ], _, `, ~, !, retorno de carro, tabulador, coma, nueva línea, guion, punto, $, /, ", |, *, (, ),?, {,}, ', cambiar a mayúsculas.
En la mayoría de las versiones de DNI los caracteres se ingresan con mayúsculas sin acentos, pero no en todas las versiones. Las mayúsculas sin acento están dentro de los caracteres ASCII imprimibles y no hay problema para su reconocimiento. En algunas versiones de DNI, en el código PDF417, se suele omitir la letra acentuada y cuando parseamos (leemos el código PDF417) no podemos obtener los datos.
Las apóstrofes no representan un problema ya están dentro de los caracteres ASCII imprimibles y son reconocidos sin problemas por las lectoras de código PDF417
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUmXqZs0ibYS6W3BS8p97zSZYFQ1IyTZoogbNwhw5RfybNjwNJnSN8kTZKrULwx5IJU3RGI3eLUXWJdl8_K1V5n2BIuYLIEdnq_ZYnYwhhdbFcrctsjb5SLz_Y7fY6LHH3N8mr5TJyDmY/s320/Seein+t%25C3%25ADtulo.jpg)
Respecto de los acentos en la mayoría de los DNI, los nombres y apellidos están cargados con letras mayúsculas sin acento, sin embargo, en algunas versiones no lo esta, y ahí pueden suceder 2 cosas dependiendo de la versión: directamente la transforma a una letra sin acento, o la omite.
Por ejemplo en este caso el escaneo del pdf417 en lugar de traer el apellido Duré trae DUR y omite la letra E, en cambio en el código OCR, al reverso del documento ,lo trae correctamente sin acento:DURE. Para resolver esto necesitamos un escáner que lea también OCR como vamos a ver a continuación .
Para las letras ñ y ü , en la mayoría de las versiones , el código PDF417 del DNI suele ponerles NXX O UXX en lugar de ñ y ü , con lo cual nos permite hacer una programación que transforme el parseo que obtenemos del documento para ingresar los datos correctamente.
Casos de Apellidos con ñ leidos como Nuñez y Muñoz vienen en el pdf417 como NUXXES o MUXXOZ , lo que permiten ser corregidos.
Respecto a la ü con diéresis como es el caso de Agüero, el pdf417 suele devolver ACUXXERO lo que permite ser corregido.
Para este estudio hemos analizado unos cuarenta mil DNI y, dependiendo de la versión, no siempre ocurre lo antes mencionado : a veces omiten la letra o ponen la letra N sin estar seguida de XX , con lo cual no hace posible programar un código que lo corrija y ahí dependemos de otros métodos para resolver estas cuestiones.
Como vemos arriba, la lectura del código PDF417 devuelve la palabra "Nunez" , con lo cual para este documento no funcionarán las reglas antes mencionadas.
En la figura a continuacion, en el código OCR que está al reverso del documento, se lee NUNXXEZ pero no está así en el pdf417
Para resolver esta problemática, necesitamos un escáner que lea el código OCR además del pdf417. Este tipo de equipos son los que usa migraciones . Obviamente estos equipos son más costosos.Aparatos como el OCR-B, Scanner de Pasaportes y DNI permiten guardar la imagen total de DNI y extraer los datos por OCR. Otros dispositivos como el IDe200 captura imágenes a todo color y también imágenes ultravioleta (UV) e infrarrojo (IR) de la tarjeta de identificación, cédula / Carnet de identidad o de la licencia de conducir.
Ademas, son compatible con reconocimiento óptico de caracteres (OCR, Optical Character Recongition) para la zona legible por máquina (MRZ, machine readable zone). Estos dispositivos cumplen con la norma ICAO9303, y también realizan la lectura de códigos de barras PDF417 y QR.
- En nuestro estudio analizamos 40.000 DNI Argentinos y la incidencia de errores no procesables ( sin posibilidad de corregir por alguna programación) es del 0,025 % Es decir que el 99,975 % de los DNI podrían leerse correctamente con un escáner de código pdf417 sin necesidad de recurrir a un scanner mucho mas costoso.
- Las nuevas versiones de DNI corrigen estos errores, por lo cual a medida que la gente actualice sus documentos, los problemas que detectamos van a tender a desaparecer.
- Lectores de dni:
- Libreria en webassembly (basada en ZXing) para leer dni argentinos
Comentarios
Publicar un comentario