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:
- Importa lo spazio dei nomi
generationdaaspose.barcode. - Prepara il testo del payload Royal Mail che desideri codificare.
- Crea un oggetto
BarcodeGenerator. - Imposta il tipo di codice a barre su
generation.EncodeTypes.QR. - 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:
- Importa lo spazio dei nomi
barcoderecognitiondaaspose.barcode. - Crea un’istanza di
BarCodeReadere passa il percorso dell’immagine QR code. - Imposta il tipo di codice a barre su
br.DecodeType.QR. - Chiama
read_bar_codes()per estrarre i risultati del codice a barre. - 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.
| Formato | Caso d’uso |
|---|---|
| PNG | Output senza perdita per stampa e scansione |
| JPG | File più piccoli dove una leggera compressione è accettabile |
| BMP | Output bitmap semplice per sistemi legacy |
| GIF | Output immagine leggero per casi d’uso di base |
| TIFF | Flussi 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:
| API | Scopo |
|---|---|
generation.BarcodeGenerator | Genera immagini di codici a barre. |
generation.EncodeTypes.QR | Specifica QR Code come tipo di codice a barre per la generazione. |
generation.BarCodeImageFormat.PNG | Salva l’immagine del codice a barre generata come PNG. |
br.BarCodeReader | Legge immagini di codici a barre. |
br.DecodeType.QR | Specifica 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_text | Ottiene il testo decodificato del codice a barre. |
result.code_type_name | Ottiene 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?
Usageneration.BarcodeGeneratorcongeneration.EncodeTypes.QR, passa il testo del payload relativo a Royal Mail e salva l’output usandogenerator.save().Come leggere un’immagine di codice QR Royal Mail in Python?
Usabr.BarCodeReader(file_name, br.DecodeType.QR)e itera attraverso i risultati restituiti daread_bar_codes().Quale proprietà restituisce il testo decodificato del codice QR?
Usaresult.code_textper 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.
