在郵政、運輸和物流應用中,生成 QR 代碼是一項常見需求。如果您的 Python 應用需要創建包含皇家郵政相關資料的 QR 代碼,例如追蹤號、路由號、郵遞區號或自訂郵件負載,您可以使用 Aspose.BarCode for Python via .NET 生成 QR 圖像並讀取回來進行驗證。
在本文中,我們將使用 Python 創建一個 Royal Mail QR 代碼,然後解碼生成的 QR 代碼圖像。代碼示例分為兩個清晰的部分:一個用於 QR 代碼生成,另一個用於 QR 代碼讀取。
注意: 在本文中,“Royal Mail QR code”指的是存储 Royal Mail 相關負載資料的標準 QR Code。如果您需要 Royal Mail Mailmark,那是另一種郵政條碼類型,且需要特定的 Mailmark 資料結構。
安裝 Aspose.BarCode for Python via .NET
使用以下命令從 PyPI 安裝 Aspose.BarCode 套件:
pip install aspose-barcode-for-python-via-net
安裝完成後,您可以使用生成 API 來建立條碼圖像,並使用識別 API 讀取條碼圖像。
在 Python 中生成 Royal Mail QR 代碼的步驟
遵循以下步驟以生成 Royal Mail QR 代碼:
- 從
aspose.barcode匯入generation命名空間。 - 準備要編碼的 Royal Mail 負載文字。
- 建立一個
BarcodeGenerator物件。 - 將條碼類型設定為
generation.EncodeTypes.QR。 - 使用
generation.BarCodeImageFormat.PNG儲存產生的 QR 代碼影像。
在 Python 中生成 Royal Mail QR 码
以下程式碼範例展示如何產生 Royal Mail QR 代碼並將其儲存為 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)
在此範例中,BarcodeGenerator 類別會根據提供的文字建立 QR 代碼。generation.EncodeTypes.QR 值指定輸出的條碼必須是 QR Code。最後,save() 方法會將產生的條碼圖像匯出為 PNG 檔案。
您可以將 royal_mail_data 的示例值替換為實際的 Royal Mail 載荷。例如,您可以編碼追蹤號碼、標籤識別碼、郵遞區號或應用程式所需的其他郵件值。
在 Python 中讀取皇家郵政 QR 代碼的步驟
生成 QR 代碼後,您可以讀取它以驗證編碼的資料是否正確。請按照以下步驟操作:
- 從
aspose.barcode匯入barcoderecognition命名空間。 - 建立
BarCodeReader實例,並傳入 QR 代碼圖像路徑。 - 將條碼類型設為
br.DecodeType.QR。 - 呼叫
read_bar_codes()以提取條碼結果。 - 從
code_text屬性讀取解碼後的文字。
在 Python 中讀取皇家郵件 QR 碼
以下程式碼範例顯示如何讀取產生的 Royal Mail QR 代碼圖像。
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)
BarCodeReader 類別從指定的檔案路徑讀取條碼影像。br.DecodeType.QR 值告訴讀取器尋找 QR 代碼。read_bar_codes() 方法會回傳偵測到的條碼結果,每個結果透過 code_type_name 和 code_text 透露條碼類型與解碼文字。
完整的生成與閱讀範例
您也可以在單一腳本中結合生成與辨識。當您想在建立 QR 代碼後立即驗證生成的 QR 代碼時,這非常有用。
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)
此完整腳本首先建立一個名為 royal_mail_qr.png 的 QR 代碼圖像。然後使用 BarCodeReader 載入相同的圖像,解碼 QR 代碼,並列印條碼類型和編碼資料。
驗證已解碼的 QR Code 資料
對於郵件和運輸工作流程,最好在列印或將 QR 代碼發送到其他系統之前驗證每個生成的 QR 代碼。您可以將解碼結果與原始有效負載進行比較:
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.")
此簡單的驗證步驟有助於確認生成的 QR 圖像包含了您的應用程式打算編碼的相同資料。
處理不同的 QR Code 圖像格式
上述範例將 QR 代碼儲存為 PNG,因為 PNG 是無損圖像格式,通常是列印和掃描工作流程的良好選擇。Aspose.BarCode 也可以在需要時將條碼圖像儲存為其他支援的格式。
| 格式 | 使用情境 |
|---|---|
| PNG | 用於列印和掃描的無損輸出 |
| JPG | 在可接受輕微壓縮的情況下產生較小的檔案 |
| BMP | 為舊系統提供的簡單位圖輸出 |
| GIF | 基本使用情境的輕量圖像輸出 |
| TIFF | 用於存檔或高解析度文件工作流程 |
若要更改圖像格式,請更新 save() 方法的第二個參數。例如,使用 generation.BarCodeImageFormat 中相應的值。
皇家郵件 QR 代碼工作流程的最佳實踐
- 使用您的 Royal Mail、運輸或標籤生成工作流程所需的精確有效負載格式。
- 保持 QR 代碼圖像清晰、高對比且無失真。
- 為列印標籤首選無損格式,例如 PNG。
- 在生成後解碼圖像以驗證編碼的有效負載。
- 在排除標籤問題時,將原始有效負載和解碼結果都存入日誌。
常用 API 類別
以下 Aspose.BarCode for Python via .NET 類別和值在本文中使用:
| API | Purpose |
|---|---|
generation.BarcodeGenerator | 產生條碼影像。 |
generation.EncodeTypes.QR | 指定 QR Code 為產生時的條碼類型。 |
generation.BarCodeImageFormat.PNG | 將產生的條碼影像儲存為 PNG。 |
br.BarCodeReader | 讀取條碼影像。 |
br.DecodeType.QR | 指定 QR Code 為辨識時的條碼類型。 |
read_bar_codes() | 從影像中返回偵測到的條碼結果。 |
result.code_text | 取得已解碼的條碼文字。 |
result.code_type_name | 取得偵測到的條碼類型名稱。 |
結論
您只需幾行程式碼,即可在 Python 中使用 Aspose.BarCode for Python via .NET 生成和讀取 Royal Mail QR 代碼。使用 generation.BarcodeGenerator 並搭配 generation.EncodeTypes.QR 來建立 QR 代碼,使用 generation.BarCodeImageFormat.PNG 儲存,然後使用 br.BarCodeReader 搭配 br.DecodeType.QR 來解碼產生的圖像。
此生成與識別工作流程可用於在 QR 代碼印刷到郵件標籤、存儲於運輸系統或發送至下游物流應用程序之前進行驗證。
常見問題
在 Python 中生成 Royal Mail QR 码的最简方法是什么?
使用generation.BarcodeGenerator搭配generation.EncodeTypes.QR,传入与 Royal Mail 相关的负载文本,并使用generator.save()保存输出。如何在 Python 中讀取 Royal Mail QR 代碼圖像?
使用br.BarCodeReader(file_name, br.DecodeType.QR)並遍歷read_bar_codes()返回的結果。哪個屬性返回解碼後的 QR 代碼文字?
使用result.code_text來獲取每個條碼識別結果的解碼值。我可以將此程式碼用於 Royal Mail Mailmark 嗎?
不行。本文使用標準 QR Code 生成和識別。Royal Mail Mailmark 是一種獨立的郵政條碼類型,具有其自身所需的資料結構。
