Prueba de decodificación 2 - tpII/2020-pc-6-combiot GitHub Wiki
A continuacion explicaremos la segunda alternativa para la decodificacion del codigo pdf417, haciendo uso de Docker y la libreria pyzxing (Python + Java) principalmente.
- Instalamos docker en nuestras computadoras
- Creamos el archivo Dockerfile con el siguiente contenido:
FROM python:3.8.6-alpine3.12
ENV VERSION=3.6.3
RUN apk add openjdk8 wget gcc g++ \
&& wget -O /tmp/maven.tar.gz https://apache.dattatec.com/maven/maven-3/3.6.3/binaries/apache-maven-$VERSION-bin.tar.gz \
&& tar -zxvf /tmp/maven.tar.gz -C /etc/ \
&& mv /etc/apache-maven-$VERSION /etc/maven \
&& pip install pyzxing
ENV PATH=/etc/maven/bin:$PATH
- Creamos la imagen con el comando:
docker build -t combi .
- Corremos la imagen de forma local:
docker container run -itd --name combi -v $PWD:/combi combi:latest
- Para correr comandos dentro del contenedor utilizamos el siguiente comando:
docker exec -it combi ash
- Entramos a la carpeta combi y corremos el programa en python "deco-docker.py" para decodificar la imagen del pdf417.
Contenido del deco-docker.p
from pyzxing import BarCodeReader
reader = BarCodeReader()
results = reader.decode('./barcode.png')
print(results)
Obteniendo el siguiente resultado:
[{'filename': 'file:///combi/./barcode.png', 'format': 'PDF_417', 'type': 'TEXT', 'raw': "{'name': 'Cliente', 'date': '12/10/2020', 'valid': True}", 'parsed': "{'name': 'Cliente', 'date': '12/10/2020', 'valid': True}", 'points': [(20.0, 20.0), (20.0, 487.0), (533.0, 20.0), (533.0, 487.0), (71.0, 20.0), (71.0, 487.0), (479.0, 20.0), (479.0, 487.0)]}]
- Para quedarnos con la informacion del campo 'parsed' que es la que nos interesa simplemente accedemos de la siguiente manera:
results[0]['parsed']
Obteniendo asi:
{'name': 'Cliente', 'date': '12/10/2020', 'valid': True}