Att generera QR‑koder är ett vanligt krav i post‑, frakt‑ och logistikapplikationer. Om ditt Python‑program behöver skapa en QR‑kod som innehåller data relaterade till Royal Mail, såsom ett spårningsvärde, routningsvärde, postnummer eller en anpassad postpayload, kan du använda Aspose.BarCode for Python via .NET för att generera QR‑bilden och läsa tillbaka den för verifiering.
I den här artikeln kommer vi att skapa en Royal Mail QR‑kod i Python och sedan avkoda den genererade QR‑kodbilden. Kodexemplen är uppdelade i två tydliga sektioner: en för QR‑kodgenerering och en för QR‑kodläsning.
Obs: I den här artikeln betyder “Royal Mail QR code” en standard QR‑kod som lagrar Royal Mail‑relaterad nyttolastdata. Om du behöver Royal Mail Mailmark, är det en annan poststreckkodstyp och kräver en specifik Mailmark‑datastruktur.
Installera Aspose.BarCode for Python via .NET
Installera Aspose.BarCode-paketet från PyPI med följande kommando:
pip install aspose-barcode-for-python-via-net
Efter installationen kan du använda genererings‑API:et för att skapa streckkodsbilder och igenkännings‑API:et för att läsa streckkodsbilder.
Steg för att generera en Royal Mail QR‑kod i Python
Följ dessa steg för att generera en Royal Mail QR‑kod:
- Importera
generation-namnutrymmet frånaspose.barcode. - Förbered Royal Mail‑payload‑texten som du vill koda.
- Skapa ett
BarcodeGenerator‑objekt. - Ställ in streckkodstypen till
generation.EncodeTypes.QR. - Spara den genererade QR‑kodbilden med
generation.BarCodeImageFormat.PNG.
Generera Royal Mail QR‑kod i Python
Följande kodexempel visar hur man genererar en Royal Mail QR‑kod och sparar den som en PNG‑bild.
from aspose.barcode import generation
Data att koda i QR-koden
Ersätt detta med din faktiska Royal Mail-payload / spårnings- / etikettdata
royal_mail_data = “ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA”
Generera Royal Mail QR‑kod
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)
<!--[CODE_SNIPPET_END]-->
I det här exemplet skapar klassen `BarcodeGenerator` en QR‑kod från den angivna texten. Värdet `generation.EncodeTypes.QR` anger att den genererade streckkoden måste vara en QR‑kod. Slutligen exporterar metoden `save()` den genererade streckkodsbilden som en PNG‑fil.
Du kan ersätta exempelvärdet för `royal_mail_data` med din riktiga Royal Mail‑payload. Till exempel kan du koda ett spårningsnummer, en etikettidentifierare, postnummer eller ett annat postvärde som krävs av din applikation.
## Steg för att läsa en Royal Mail QR‑kod i Python
Efter att ha genererat QR‑koden kan du läsa av den igen för att verifiera att den kodade datan är korrekt. Följ dessa steg:
1. Importera `barcoderecognition`‑namnutrymmet från `aspose.barcode`.
2. Skapa en `BarCodeReader`‑instans och skicka QR‑kodens bildsökväg.
3. Ställ in streckkodstypen till `br.DecodeType.QR`.
4. Anropa `read_bar_codes()` för att extrahera streckkodresultat.
5. Läs den avkodade texten från `code_text`‑egenskapen.
## Läs Royal Mail QR‑kod i Python
Följande kodexempel visar hur man läser den genererade Royal Mail QR‑kodbilden.
<!--[CODE_SNIPPET_START]-->
```python
from aspose.barcode import barcoderecognition as br
Läs Royal Mail QR-kod
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)
Klassen BarCodeReader läser streckkodsbilden från den angivna filsökvägen. Värdet br.DecodeType.QR talar om för läsaren att leta efter QR‑koder. Metoden read_bar_codes() returnerar de upptäckta streckkodresultaten, och varje resultat visar streckkodstypen och den avkodade texten via code_type_name och code_text.
Fullständigt exempel för generering och läsning
Du kan också kombinera generering och igenkänning i ett enda skript. Detta är användbart när du vill validera den genererade QR‑koden omedelbart efter att den skapats.
from aspose.barcode import generation
from aspose.barcode import barcoderecognition as br
Data att koda i QR-koden
Ersätt detta med din faktiska Royal Mail-payload / spårnings- / etikettdata
royal_mail_data = “ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA”
1) Generera Royal Mail QR-kod
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) Läs Royal Mail QR-kod
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)
Det här kompletta skriptet skapar först en QR‑kod‑bild med namnet royal_mail_qr.png. Det laddar sedan samma bild med BarCodeReader, avkodar QR‑koden och skriver ut streckkodstypen samt den kodade datan.
Validera den avkodade QR‑koddata
För post- och fraktarbetsflöden är det en bra praxis att validera varje genererad QR‑kod innan den skrivs ut eller skickas till ett annat system. Du kan jämföra det avkodade resultatet med den ursprungliga nyttolasten:
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.")
Detta enkla valideringssteg hjälper till att bekräfta att den genererade QR‑bilden innehåller samma data som din applikation avsåg att koda.
Hantera olika QR‑kod bildformat
Exemplen ovan sparar QR‑koden som PNG eftersom PNG är ett förlustfritt bildformat och vanligtvis är ett bra val för utskrifts‑ och skanningsarbetsflöden. Aspose.BarCode kan också spara streckkodsbilder i andra stödda format vid behov.
| Format | Användningsfall |
|---|---|
| PNG | Förlustfri utdata för utskrift och skanning |
| JPG | Mindre filer där lätt kompression är acceptabel |
| BMP | Enkel bitmap-utdata för äldre system |
| GIF | Lättviktig bildutdata för grundläggande användningsfall |
| TIFF | Arkiverings- eller högupplösta dokumentarbetsflöden |
För att ändra bildformatet, uppdatera det andra argumentet i save()‑metoden. Till exempel, använd motsvarande värde från generation.BarCodeImageFormat.
Bästa praxis för Royal Mail QR‑kod arbetsflöden
- Använd exakt det payload-format som krävs av ditt Royal Mail-, frakt- eller etikettgenereringsflöde.
- Håll QR‑kodbilden klar, med hög kontrast och fri från förvrängning.
- Föredra förlustfria format som PNG för utskrivna etiketter.
- Avkoda den genererade bilden efter skapandet för att verifiera den kodade payloaden.
- Spara både den ursprungliga payloaden och det avkodade resultatet i loggar när du felsöker etikettproblem.
Vanliga API‑klasser som används
Följande Aspose.BarCode for Python via .NET‑klasser och värden används i den här artikeln:
| API | Purpose |
|---|---|
generation.BarcodeGenerator | Genererar streckkodsbilder. |
generation.EncodeTypes.QR | Anger QR‑kod som streckkodstyp för generering. |
generation.BarCodeImageFormat.PNG | Sparar den genererade streckkodsbilden som PNG. |
br.BarCodeReader | Läser streckkodsbilder. |
br.DecodeType.QR | Anger QR‑kod som streckkodstyp för igenkänning. |
read_bar_codes() | Returnerar detekterade streckkodresultat från bilden. |
result.code_text | Hämtar den avkodade streckkodstexten. |
result.code_type_name | Hämtar namnet på den detekterade streckkodstypen. |
Slutsats
Du kan generera och läsa Royal Mail QR‑koder i Python med bara några rader kod med hjälp av Aspose.BarCode for Python via .NET. Använd generation.BarcodeGenerator med generation.EncodeTypes.QR för att skapa QR‑koden, spara den med generation.BarCodeImageFormat.PNG och använd sedan br.BarCodeReader med br.DecodeType.QR för att avkoda den genererade bilden.
Detta genererings- och igenkännandeflöde är användbart för att validera QR‑koder innan de skrivs ut på postetiketter, lagras i fraktssystem eller skickas till efterföljande logistiska applikationer.
Vanliga frågor
Vad är det enklaste sättet att generera en Royal Mail QR-kod i Python?
Användgeneration.BarcodeGeneratormedgeneration.EncodeTypes.QR, skicka din Royal Mail‑relaterade payload‑text och spara resultatet medgenerator.save().Hur läser jag en Royal Mail QR‑kod bild i Python?
Användbr.BarCodeReader(file_name, br.DecodeType.QR)och loopa igenom resultaten som returneras avread_bar_codes().Vilken egenskap returnerar den avkodade QR‑kodtexten?
Användresult.code_textför att hämta det avkodade värdet från varje streckkodigenkänningsresultat.Kan jag använda den här koden för Royal Mail Mailmark?
Inte direkt. Den här artikeln använder standard QR‑kodgenerering och -igenkänning. Royal Mail Mailmark är en separat poststreckkodstyp med sin egen obligatoriska datastruktur.
