Generar códigos QR es un requisito común en aplicaciones de correos, envíos y logística. Si su aplicación Python necesita crear un código QR que contenga datos relacionados con Royal Mail, como un valor de seguimiento, valor de enrutamiento, código postal o una carga postal personalizada, puede usar Aspose.BarCode for Python via .NET para generar la imagen QR y leerla de nuevo para su verificación.
En este artículo, crearemos un código QR de Royal Mail en Python y luego decodificaremos la imagen del código QR generado. Los ejemplos de código están divididos en dos secciones claras: una para la generación del código QR y otra para la lectura del código QR.
Nota: En este artículo, “Royal Mail QR code” se refiere a un código QR estándar que almacena datos de carga útil relacionados con Royal Mail. Si necesita Royal Mail Mailmark, ese es un tipo de código de barras postal diferente y requiere una estructura de datos Mailmark específica.
Instalar Aspose.BarCode for Python via .NET
Instale el paquete Aspose.BarCode desde PyPI usando el siguiente comando:
pip install aspose-barcode-for-python-via-net
Después de la instalación, puede usar la API de generación para crear imágenes de códigos de barras y la API de reconocimiento para leer imágenes de códigos de barras.
Pasos para generar un código QR de Royal Mail en Python
Siga estos pasos para generar un código QR de Royal Mail:
- Importe el espacio de nombres
generationdeaspose.barcode. - Prepare el texto de carga útil de Royal Mail que desea codificar.
- Cree un objeto
BarcodeGenerator. - Establezca el tipo de código de barras a
generation.EncodeTypes.QR. - Guarde la imagen del código QR generado usando
generation.BarCodeImageFormat.PNG.
Generar código QR de Royal Mail en Python
El siguiente ejemplo de código muestra cómo generar un código QR de Royal Mail y guardarlo como una imagen PNG.
from aspose.barcode import generation
# Data to encode in the QR code
# Replace this with your actual Royal Mail payload / tracking / label data
royal_mail_data = "ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA"
# Generate Royal Mail QR Code
file_name = "royal_mail_qr.png"
generator = generation.BarcodeGenerator(
generation.EncodeTypes.QR,
royal_mail_data
)
generator.save(file_name, generation.BarCodeImageFormat.PNG)
print("QR Code generated:", file_name)
En este ejemplo, la clase BarcodeGenerator crea un código QR a partir del texto suministrado. El valor generation.EncodeTypes.QR especifica que el código de barras de salida debe ser un Código QR. Finalmente, el método save() exporta la imagen del código de barras generado como un archivo PNG.
Puede reemplazar el valor de ejemplo de royal_mail_data con su carga útil real de Royal Mail. Por ejemplo, puede codificar un número de seguimiento, un identificador de etiqueta, un código postal u otro valor postal requerido por su aplicación.
Pasos para leer un código QR de Royal Mail en Python
Después de generar el código QR, puedes leerlo nuevamente para verificar que los datos codificados sean correctos. Sigue estos pasos:
- Importe el espacio de nombres
barcoderecognitiondeaspose.barcode. - Cree una instancia de
BarCodeReadery pase la ruta de la imagen del código QR. - Establezca el tipo de código de barras en
br.DecodeType.QR. - Llame a
read_bar_codes()para extraer los resultados del código de barras. - Lea el texto decodificado de la propiedad
code_text.
Leer código QR de Royal Mail en Python
El siguiente ejemplo de código muestra cómo leer la imagen del código QR de Royal Mail generada.
from aspose.barcode import barcoderecognition as br
# Read Royal Mail QR Code
file_name = "royal_mail_qr.png"
reader = br.BarCodeReader(file_name, br.DecodeType.QR)
for result in reader.read_bar_codes():
print("Barcode Type:", result.code_type_name)
print("Barcode Data:", result.code_text)
La clase BarCodeReader lee la imagen del código de barras desde la ruta de archivo especificada. El valor br.DecodeType.QR indica al lector que busque códigos QR. El método read_bar_codes() devuelve los resultados de códigos de barras detectados, y cada resultado expone el tipo de código de barras y el texto decodificado a través de code_type_name y code_text.
Ejemplo completo de generación y lectura
También puedes combinar la generación y el reconocimiento en un solo script. Esto es útil cuando deseas validar el código QR generado inmediatamente después de crearlo.
from aspose.barcode import generation
from aspose.barcode import barcoderecognition as br
# Data to encode in the QR code
# Replace this with your actual Royal Mail payload / tracking / label data
royal_mail_data = "ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA"
# 1) Generate Royal Mail QR Code
file_name = "royal_mail_qr.png"
generator = generation.BarcodeGenerator(
generation.EncodeTypes.QR,
royal_mail_data
)
generator.save(file_name, generation.BarCodeImageFormat.PNG)
print("QR Code generated:", file_name)
# 2) Read Royal Mail QR Code
reader = br.BarCodeReader(file_name, br.DecodeType.QR)
for result in reader.read_bar_codes():
print("Barcode Type:", result.code_type_name)
print("Barcode Data:", result.code_text)
Este script completo primero crea una imagen de código QR llamada royal_mail_qr.png. Luego carga la misma imagen con BarCodeReader, decodifica el código QR y muestra el tipo de código de barras y los datos codificados.
Validar los datos del código QR decodificado
Para flujos de trabajo de correo y envío, es una buena práctica validar cada código QR generado antes de imprimirlo o enviarlo a otro sistema. Puede comparar el resultado decodificado con la carga útil original:
for result in reader.read_bar_codes():
if result.code_text == royal_mail_data:
print("QR code validation passed.")
else:
print("QR code validation failed.")
Este sencillo paso de validación ayuda a confirmar que la imagen QR generada contiene los mismos datos que su aplicación pretendía codificar.
Manejo de diferentes formatos de imagen de código QR
Los ejemplos anteriores guardan el código QR como PNG porque PNG es un formato de imagen sin pérdida y suele ser una buena opción para flujos de trabajo de impresión y escaneo. Aspose.BarCode también puede guardar imágenes de códigos de barras en otros formatos compatibles cuando sea necesario.
| Formato | Caso de uso |
|---|---|
| PNG | Salida sin pérdida para impresión y escaneo |
| JPG | Archivos más pequeños donde una ligera compresión es aceptable |
| BMP | Salida de mapa de bits simple para sistemas heredados |
| GIF | Salida de imagen ligera para casos de uso básicos |
| TIFF | Flujos de trabajo de documentos de archivo o alta resolución |
Para cambiar el formato de la imagen, actualice el segundo argumento del método save(). Por ejemplo, use el valor correspondiente de generation.BarCodeImageFormat.
Mejores prácticas para flujos de trabajo de códigos QR de Royal Mail
- Utilice el formato de carga exacto requerido por su flujo de trabajo de Royal Mail, envíos o generación de etiquetas.
- Mantenga la imagen del código QR clara, de alto contraste y sin distorsiones.
- Prefiera formatos sin pérdida como PNG para etiquetas impresas.
- Decodifique la imagen generada después de su creación para verificar la carga codificada.
- Guarde tanto la carga original como el resultado decodificado en los registros al solucionar problemas de etiquetas.
Clases API comunes utilizadas
Las siguientes clases y valores de Aspose.BarCode for Python via .NET se utilizan en este artículo:
| API | Propósito |
|---|---|
generation.BarcodeGenerator | Genera imágenes de códigos de barras. |
generation.EncodeTypes.QR | Especifica QR Code como el tipo de código de barras para la generación. |
generation.BarCodeImageFormat.PNG | Guarda la imagen de código de barras generada como PNG. |
br.BarCodeReader | Lee imágenes de códigos de barras. |
br.DecodeType.QR | Especifica QR Code como el tipo de código de barras para el reconocimiento. |
read_bar_codes() | Devuelve los resultados de códigos de barras detectados de la imagen. |
result.code_text | Obtiene el texto decodificado del código de barras. |
result.code_type_name | Obtiene el nombre del tipo de código de barras detectado. |
Conclusión
Puedes generar y leer códigos QR de Royal Mail en Python con solo unas pocas líneas de código usando Aspose.BarCode for Python via .NET. Usa generation.BarcodeGenerator con generation.EncodeTypes.QR para crear el código QR, guárdalo con generation.BarCodeImageFormat.PNG y luego usa br.BarCodeReader con br.DecodeType.QR para decodificar la imagen generada.
Este flujo de trabajo de generación y reconocimiento es útil para validar códigos QR antes de que se impriman en etiquetas postales, se almacenen en sistemas de envío o se envíen a aplicaciones logísticas posteriores.
Preguntas frecuentes
¿Cuál es la forma más fácil de generar un código QR de Royal Mail en Python?
Utilicegeneration.BarcodeGeneratorcongeneration.EncodeTypes.QR, pase su texto de carga útil relacionado con Royal Mail y guarde la salida usandogenerator.save().¿Cómo leo una imagen de código QR de Royal Mail en Python?
Utilicebr.BarCodeReader(file_name, br.DecodeType.QR)y recorra los resultados devueltos porread_bar_codes().¿Qué propiedad devuelve el texto decodificado del código QR?
Useresult.code_textpara obtener el valor decodificado de cada resultado de reconocimiento de código de barras.¿Puedo usar este código para Royal Mail Mailmark?
No directamente. Este artículo utiliza la generación y reconocimiento estándar de códigos QR. Royal Mail Mailmark es un tipo de código de barras postal separado con su propia estructura de datos requerida.
