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:

  1. Importe el espacio de nombres generation de aspose.barcode.
  2. Prepare el texto de carga útil de Royal Mail que desea codificar.
  3. Cree un objeto BarcodeGenerator.
  4. Establezca el tipo de código de barras a generation.EncodeTypes.QR.
  5. 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:

  1. Importe el espacio de nombres barcoderecognition de aspose.barcode.
  2. Cree una instancia de BarCodeReader y pase la ruta de la imagen del código QR.
  3. Establezca el tipo de código de barras en br.DecodeType.QR.
  4. Llame a read_bar_codes() para extraer los resultados del código de barras.
  5. 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.

FormatoCaso de uso
PNGSalida sin pérdida para impresión y escaneo
JPGArchivos más pequeños donde una ligera compresión es aceptable
BMPSalida de mapa de bits simple para sistemas heredados
GIFSalida de imagen ligera para casos de uso básicos
TIFFFlujos 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:

APIPropósito
generation.BarcodeGeneratorGenera imágenes de códigos de barras.
generation.EncodeTypes.QREspecifica QR Code como el tipo de código de barras para la generación.
generation.BarCodeImageFormat.PNGGuarda la imagen de código de barras generada como PNG.
br.BarCodeReaderLee imágenes de códigos de barras.
br.DecodeType.QREspecifica 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_textObtiene el texto decodificado del código de barras.
result.code_type_nameObtiene 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?
    Utilice generation.BarcodeGenerator con generation.EncodeTypes.QR, pase su texto de carga útil relacionado con Royal Mail y guarde la salida usando generator.save().

  • ¿Cómo leo una imagen de código QR de Royal Mail en Python?
    Utilice br.BarCodeReader(file_name, br.DecodeType.QR) y recorra los resultados devueltos por read_bar_codes().

  • ¿Qué propiedad devuelve el texto decodificado del código QR?
    Use result.code_text para 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.

Leer más