La generazione di codici QR è una esigenza comune nelle applicazioni postali, di spedizione e logistica. Se la tua applicazione Python deve creare un codice QR che contenga dati relativi a Royal Mail, come un valore di tracciamento, valore di instradamento, codice postale o un payload postale personalizzato, puoi utilizzare Aspose.BarCode for Python via .NET per generare l’immagine QR e leggerla nuovamente per la verifica.

In questo articolo, creeremo un codice QR Royal Mail in Python e poi decodificheremo l’immagine del codice QR generata. Gli esempi di codice sono suddivisi in due sezioni chiare: una per la generazione del codice QR e una per la lettura del codice QR.

Nota: In questo articolo, “Royal Mail QR code” indica un QR Code standard che memorizza i dati di payload relativi a Royal Mail. Se ti serve Royal Mail Mailmark, si tratta di un diverso tipo di codice a barre postale e richiede una struttura dati Mailmark specifica.

Installa Aspose.BarCode for Python via .NET

Installa il pacchetto Aspose.BarCode da PyPI usando il seguente comando:

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

Dopo l’installazione, è possibile utilizzare l’API di generazione per creare immagini di codici a barre e l’API di riconoscimento per leggere le immagini di codici a barre.

Passaggi per generare un codice QR Royal Mail in Python

Segui questi passaggi per generare un codice QR di Royal Mail:

  1. Importa lo spazio dei nomi generation da aspose.barcode.
  2. Prepara il testo del payload Royal Mail che desideri codificare.
  3. Crea un oggetto BarcodeGenerator.
  4. Imposta il tipo di codice a barre su generation.EncodeTypes.QR.
  5. Salva l’immagine QR code generata usando generation.BarCodeImageFormat.PNG.

Genera codice QR Royal Mail in Python

Il seguente esempio di codice mostra come generare un codice QR Royal Mail e salvarlo come immagine 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)

In questo esempio, la classe BarcodeGenerator crea un codice QR dal testo fornito. Il valore generation.EncodeTypes.QR specifica che il codice a barre di output deve essere un QR Code. Infine, il metodo save() esporta l’immagine del codice a barre generata come file PNG.

Puoi sostituire il valore di esempio di royal_mail_data con il tuo payload reale di Royal Mail. Ad esempio, potresti codificare un numero di tracciamento, un identificatore di etichetta, un codice postale o un altro valore postale richiesto dalla tua applicazione.

Passaggi per leggere un codice QR di Royal Mail in Python

Dopo aver generato il codice QR, è possibile leggerlo nuovamente per verificare che i dati codificati siano corretti. Segui questi passaggi:

  1. Importa lo spazio dei nomi barcoderecognition da aspose.barcode.
  2. Crea un’istanza di BarCodeReader e passa il percorso dell’immagine QR code.
  3. Imposta il tipo di codice a barre su br.DecodeType.QR.
  4. Chiama read_bar_codes() per estrarre i risultati del codice a barre.
  5. Leggi il testo decodificato dalla proprietà code_text.

Leggi il codice QR di Royal Mail in Python

Il seguente esempio di codice mostra come leggere l’immagine del codice QR Royal Mail generata.

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 legge l’immagine del codice a barre dal percorso file specificato. Il valore br.DecodeType.QR indica al lettore di cercare i codici QR. Il metodo read_bar_codes() restituisce i risultati dei codici a barre rilevati e ogni risultato espone il tipo di codice a barre e il testo decodificato tramite code_type_name e code_text.

Esempio completo di generazione e lettura

Puoi anche combinare la generazione e il riconoscimento in un unico script. Questo è utile quando desideri convalidare il codice QR generato subito dopo averlo creato.

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)

Questo script completo crea prima un’immagine QR code denominata royal_mail_qr.png. Quindi carica la stessa immagine con BarCodeReader, decodifica il QR code e stampa il tipo di codice a barre e i dati codificati.

Convalida i dati del codice QR decodificati

Per i flussi di lavoro postali e di spedizione, è buona pratica convalidare ogni codice QR generato prima di stamparlo o inviarlo a un altro sistema. È possibile confrontare il risultato decodificato con il payload originale:

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

Questo semplice passaggio di convalida aiuta a confermare che l’immagine QR generata contiene gli stessi dati che la tua applicazione intendeva codificare.

Gestione di diversi formati di immagine QR Code

Gli esempi sopra salvano il codice QR come PNG perché PNG è un formato immagine senza perdita e di solito è una buona scelta per i flussi di lavoro di stampa e scansione. Aspose.BarCode può anche salvare le immagini del codice a barre in altri formati supportati quando necessario.

FormatoCaso d’uso
PNGOutput senza perdita per stampa e scansione
JPGFile più piccoli dove una leggera compressione è accettabile
BMPOutput bitmap semplice per sistemi legacy
GIFOutput immagine leggero per casi d’uso di base
TIFFFlussi di lavoro documentali di archivio o ad alta risoluzione

Per cambiare il formato dell’immagine, aggiorna il secondo argomento del metodo save(). Ad esempio, utilizza il valore corrispondente da generation.BarCodeImageFormat.

Migliori pratiche per i flussi di lavoro QR Code di Royal Mail

  • Utilizza il formato di payload esatto richiesto dal tuo flusso di lavoro di Royal Mail, spedizioni o generazione di etichette.
  • Mantieni l’immagine del codice QR chiara, ad alto contrasto e priva di distorsioni.
  • Preferisci formati senza perdita di qualità come PNG per le etichette stampate.
  • Decodifica l’immagine generata dopo la creazione per verificare il payload codificato.
  • Conserva sia il payload originale sia il risultato decodificato nei log quando risolvi i problemi delle etichette.

Classi API comuni utilizzate

Le seguenti classi e valori di Aspose.BarCode for Python via .NET sono utilizzati in questo articolo:

APIScopo
generation.BarcodeGeneratorGenera immagini di codici a barre.
generation.EncodeTypes.QRSpecifica QR Code come tipo di codice a barre per la generazione.
generation.BarCodeImageFormat.PNGSalva l’immagine del codice a barre generata come PNG.
br.BarCodeReaderLegge immagini di codici a barre.
br.DecodeType.QRSpecifica QR Code come tipo di codice a barre per il riconoscimento.
read_bar_codes()Restituisce i risultati dei codici a barre rilevati dall’immagine.
result.code_textOttiene il testo decodificato del codice a barre.
result.code_type_nameOttiene il nome del tipo di codice a barre rilevato.

Conclusione

Puoi generare e leggere i codici QR Royal Mail in Python con poche righe di codice utilizzando Aspose.BarCode for Python via .NET. Usa generation.BarcodeGenerator con generation.EncodeTypes.QR per creare il codice QR, salvalo con generation.BarCodeImageFormat.PNG e poi usa br.BarCodeReader con br.DecodeType.QR per decodificare l’immagine generata.

Questo flusso di lavoro di generazione e riconoscimento è utile per convalidare i codici QR prima che vengano stampati su etichette postali, archiviati nei sistemi di spedizione o inviati alle applicazioni logistiche a valle.

Domande frequenti

  • Qual è il modo più semplice per generare un codice QR Royal Mail in Python?
    Usa generation.BarcodeGenerator con generation.EncodeTypes.QR, passa il testo del payload relativo a Royal Mail e salva l’output usando generator.save().

  • Come leggere un’immagine di codice QR Royal Mail in Python?
    Usa br.BarCodeReader(file_name, br.DecodeType.QR) e itera attraverso i risultati restituiti da read_bar_codes().

  • Quale proprietà restituisce il testo decodificato del codice QR?
    Usa result.code_text per ottenere il valore decodificato da ciascun risultato di riconoscimento del codice a barre.

  • Posso usare questo codice per Royal Mail Mailmark?
    Non direttamente. Questo articolo utilizza la generazione e il riconoscimento standard di QR Code. Royal Mail Mailmark è un tipo di codice a barre postale separato con la propria struttura dati richiesta.

Leggi di più