在郵政、運輸和物流應用中,生成 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 代碼:

  1. aspose.barcode 匯入 generation 命名空間。
  2. 準備要編碼的 Royal Mail 負載文字。
  3. 建立一個 BarcodeGenerator 物件。
  4. 將條碼類型設定為 generation.EncodeTypes.QR
  5. 使用 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 代碼後,您可以讀取它以驗證編碼的資料是否正確。請按照以下步驟操作:

  1. aspose.barcode 匯入 barcoderecognition 命名空間。
  2. 建立 BarCodeReader 實例,並傳入 QR 代碼圖像路徑。
  3. 將條碼類型設為 br.DecodeType.QR
  4. 呼叫 read_bar_codes() 以提取條碼結果。
  5. 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_namecode_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 類別和值在本文中使用:

APIPurpose
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 是一種獨立的郵政條碼類型,具有其自身所需的資料結構。

閱讀更多