Générer des codes QR est une exigence courante dans les applications postales, d’expédition et logistiques. Si votre application Python doit créer un code QR contenant des données liées à Royal Mail, telles qu’une valeur de suivi, une valeur d’acheminement, un code postal ou une charge postale personnalisée, vous pouvez utiliser Aspose.BarCode for Python via .NET pour générer l’image QR et la lire à nouveau pour vérification.

Dans cet article, nous allons créer un code QR Royal Mail en Python, puis décoder l’image du code QR générée. Les exemples de code sont divisés en deux sections claires : une pour la génération du code QR et une pour la lecture du code QR.

Note : Dans cet article, le « Royal Mail QR code » désigne un QR Code standard qui stocke des données de charge utiles liées à Royal Mail. Si vous avez besoin de Royal Mail Mailmark, il s’agit d’un type de code-barres postal différent et nécessite une structure de données Mailmark spécifique.

Installer Aspose.BarCode for Python via .NET

Installez le package Aspose.BarCode depuis PyPI en utilisant la commande suivante:

pip install aspose-barcode-for-python-via-net

Après l’installation, vous pouvez utiliser l’API de génération pour créer des images de code‑barres et l’API de reconnaissance pour lire les images de code‑barres.

Étapes pour générer un code QR Royal Mail en Python

Suivez ces étapes pour générer un code QR Royal Mail :

  1. Importez l’espace de noms generation depuis aspose.barcode.
  2. Préparez le texte de charge utile Royal Mail que vous souhaitez encoder.
  3. Créez un objet BarcodeGenerator.
  4. Définissez le type de code‑barres sur generation.EncodeTypes.QR.
  5. Enregistrez l’image du code QR généré en utilisant generation.BarCodeImageFormat.PNG.

Générer un code QR Royal Mail en Python

L’exemple de code suivant montre comment générer un code QR Royal Mail et l’enregistrer en tant qu’image 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)

Dans cet exemple, la classe BarcodeGenerator crée un code QR à partir du texte fourni. La valeur generation.EncodeTypes.QR indique que le code‑barres de sortie doit être un code QR. Enfin, la méthode save() exporte l’image du code‑barres généré en tant que fichier PNG.

Vous pouvez remplacer la valeur d’exemple de royal_mail_data par votre véritable charge utile Royal Mail. Par exemple, vous pouvez encoder un numéro de suivi, un identifiant d’étiquette, un code postal ou une autre valeur postale requise par votre application.

Étapes pour lire un code QR Royal Mail en Python

Après avoir généré le code QR, vous pouvez le relire pour vérifier que les données encodées sont correctes. Suivez ces étapes :

  1. Importez l’espace de noms barcoderecognition depuis aspose.barcode.
  2. Créez une instance de BarCodeReader et transmettez le chemin de l’image du code QR.
  3. Définissez le type de code-barres sur br.DecodeType.QR.
  4. Appelez read_bar_codes() pour extraire les résultats du code-barres.
  5. Lisez le texte décodé à partir de la propriété code_text.

Lire le code QR Royal Mail en Python

L’exemple de code suivant montre comment lire l’image du code QR Royal Mail générée.

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 classe BarCodeReader lit l’image du code‑barres depuis le chemin de fichier spécifié. La valeur br.DecodeType.QR indique au lecteur de rechercher les codes QR. La méthode read_bar_codes() renvoie les résultats des codes‑barres détectés, et chaque résultat expose le type de code‑barres et le texte décodé via code_type_name et code_text.

Exemple complet de génération et de lecture

Vous pouvez également combiner la génération et la reconnaissance dans un seul script. Cela est utile lorsque vous souhaitez valider le code QR généré immédiatement après sa création.

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)

Ce script complet crée d’abord une image de code QR nommée royal_mail_qr.png. Il charge ensuite la même image avec BarCodeReader, décode le code QR et affiche le type de code‑barres ainsi que les données encodées.

Valider les données décodées du code QR

Pour les flux de travail postaux et d’expédition, il est recommandé de valider chaque code QR généré avant de l’imprimer ou de l’envoyer à un autre système. Vous pouvez comparer le résultat décodé avec la charge utile d’origine :

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.")

Cette étape de validation simple aide à confirmer que l’image QR générée contient les mêmes données que votre application souhaitait encoder.

Gestion des différents formats d’image QR Code

Les exemples ci‑dessus enregistrent le code QR au format PNG car le PNG est un format d’image sans perte et constitue généralement un bon choix pour les flux de travail d’impression et de numérisation. Aspose.BarCode peut également enregistrer les images de codes‑barres dans d’autres formats pris en charge si nécessaire.

FormatCas d’utilisation
PNGSortie sans perte pour l’impression et la numérisation
JPGFichiers plus petits où une légère compression est acceptable
BMPSortie bitmap simple pour les systèmes hérités
GIFSortie d’image légère pour les cas d’utilisation de base
TIFFFlux de travail d’archivage ou de documents haute résolution

Pour changer le format de l’image, mettez à jour le deuxième argument de la méthode save(). Par exemple, utilisez la valeur correspondante de generation.BarCodeImageFormat.

Meilleures pratiques pour les flux de travail QR Code de Royal Mail

  • Utilisez le format de charge utile exact requis par votre flux de travail Royal Mail, d’expédition ou de génération d’étiquettes.
  • Gardez l’image du code QR claire, à fort contraste et exempte de distorsion.
  • Privilégiez les formats sans perte tels que PNG pour les étiquettes imprimées.
  • Décodez l’image générée après sa création pour vérifier la charge utile encodée.
  • Enregistrez à la fois la charge utile originale et le résultat décodé dans les journaux lors du dépannage des problèmes d’étiquettes.

Classes d’API courantes utilisées

Les classes et valeurs suivantes d’Aspose.BarCode for Python via .NET sont utilisées dans cet article :

APIObjectif
generation.BarcodeGeneratorGénère des images de code-barres.
generation.EncodeTypes.QRSpécifie le QR Code comme type de code-barres pour la génération.
generation.BarCodeImageFormat.PNGEnregistre l’image de code-barres générée au format PNG.
br.BarCodeReaderLit les images de code-barres.
br.DecodeType.QRSpécifie le QR Code comme type de code-barres pour la reconnaissance.
read_bar_codes()Renvoie les résultats des codes-barres détectés à partir de l’image.
result.code_textObtient le texte du code-barres décodé.
result.code_type_nameObtient le nom du type de code-barres détecté.

Conclusion

Vous pouvez générer et lire les codes QR Royal Mail en Python avec seulement quelques lignes de code en utilisant Aspose.BarCode for Python via .NET. Utilisez generation.BarcodeGenerator avec generation.EncodeTypes.QR pour créer le code QR, enregistrez‑le avec generation.BarCodeImageFormat.PNG, puis utilisez br.BarCodeReader avec br.DecodeType.QR pour décoder l’image générée.

Ce flux de génération et de reconnaissance est utile pour valider les codes QR avant qu’ils ne soient imprimés sur des étiquettes postales, stockés dans les systèmes d’expédition ou envoyés aux applications logistiques en aval.

FAQ

  • Quel est le moyen le plus simple de générer un code QR Royal Mail en Python ?
    Utilisez generation.BarcodeGenerator avec generation.EncodeTypes.QR, transmettez votre texte de charge utile lié à Royal Mail, et enregistrez le résultat en utilisant generator.save().

  • Comment lire une image de code QR Royal Mail en Python ?
    Utilisez br.BarCodeReader(file_name, br.DecodeType.QR) et parcourez les résultats renvoyés par read_bar_codes().

  • Quelle propriété renvoie le texte décodé du code QR ?
    Utilisez result.code_text pour obtenir la valeur décodée de chaque résultat de reconnaissance de code-barres.

  • Puis-je utiliser ce code pour Royal Mail Mailmark ?
    Pas directement. Cet article utilise la génération et la reconnaissance standard de QR Code. Royal Mail Mailmark est un type de code-barres postal distinct avec sa propre structure de données requise.

En savoir plus