Generating QR codes là một yêu cầu phổ biến trong các ứng dụng bưu chính, vận chuyển và logistics. Nếu ứng dụng Python của bạn cần tạo mã QR chứa dữ liệu liên quan đến Royal Mail, chẳng hạn như giá trị theo dõi, giá trị định tuyến, mã bưu điện hoặc tải trọng bưu chính tùy chỉnh, bạn có thể sử dụng Aspose.BarCode for Python via .NET để tạo hình ảnh QR và đọc lại để xác minh.

Trong bài viết này, chúng ta sẽ tạo mã QR Royal Mail bằng Python và sau đó giải mã hình ảnh mã QR đã tạo. Các ví dụ mã được chia thành hai phần rõ ràng: một phần cho việc tạo mã QR và một phần cho việc đọc mã QR.

Lưu ý: Trong bài viết này, “Royal Mail QR code” có nghĩa là một mã QR tiêu chuẩn lưu trữ dữ liệu tải trọng liên quan đến Royal Mail. Nếu bạn cần Royal Mail Mailmark, đó là một loại mã vạch bưu chính khác và yêu cầu cấu trúc dữ liệu Mailmark cụ thể.

Cài đặt Aspose.BarCode for Python via .NET

Cài đặt gói Aspose.BarCode từ PyPI bằng cách sử dụng lệnh sau:

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

Sau khi cài đặt, bạn có thể sử dụng API tạo mã vạch để tạo hình ảnh mã vạch và API nhận dạng để đọc hình ảnh mã vạch.

Các bước tạo mã QR Royal Mail bằng Python

Thực hiện các bước sau để tạo mã QR Royal Mail:

  1. Nhập không gian tên generation từ aspose.barcode.
  2. Chuẩn bị văn bản tải trọng Royal Mail mà bạn muốn mã hoá.
  3. Tạo một đối tượng BarcodeGenerator.
  4. Đặt loại mã vạch thành generation.EncodeTypes.QR.
  5. Lưu ảnh mã QR đã tạo bằng cách sử dụng generation.BarCodeImageFormat.PNG.

Tạo mã QR Royal Mail bằng Python

Ví dụ mã sau cho thấy cách tạo mã QR Royal Mail và lưu nó dưới dạng hình 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)

Trong ví dụ này, lớp BarcodeGenerator tạo một mã QR từ văn bản được cung cấp. Giá trị generation.EncodeTypes.QR chỉ định rằng mã vạch đầu ra phải là một mã QR. Cuối cùng, phương thức save() xuất hình ảnh mã vạch đã tạo ra dưới dạng tệp PNG.

Bạn có thể thay thế giá trị mẫu của royal_mail_data bằng payload thực tế của Royal Mail. Ví dụ, bạn có thể mã hoá một số theo dõi, định danh nhãn, mã bưu chính, hoặc một giá trị bưu điện khác mà ứng dụng của bạn yêu cầu.

Các bước để đọc mã QR Royal Mail trong Python

Sau khi tạo mã QR, bạn có thể đọc lại nó để xác minh rằng dữ liệu đã mã hoá là chính xác. Thực hiện các bước sau:

  1. Nhập không gian tên barcoderecognition từ aspose.barcode.
  2. Tạo một thể hiện BarCodeReader và truyền đường dẫn hình ảnh QR code.
  3. Đặt loại mã vạch thành br.DecodeType.QR.
  4. Gọi read_bar_codes() để trích xuất kết quả mã vạch.
  5. Đọc văn bản đã giải mã từ thuộc tính code_text.

Đọc mã QR Royal Mail trong Python

Ví dụ mã sau đây cho thấy cách đọc hình ảnh mã QR Royal Mail đã tạo.

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)

Class BarCodeReader đọc hình ảnh mã vạch từ đường dẫn tệp được chỉ định. Giá trị br.DecodeType.QR cho biết bộ đọc sẽ tìm kiếm các mã QR. Phương thức read_bar_codes() trả về các kết quả mã vạch đã phát hiện, và mỗi kết quả cung cấp loại mã vạch và văn bản đã giải mã thông qua code_type_namecode_text.

Ví dụ đầy đủ về tạo và đọc

Bạn cũng có thể kết hợp việc tạo và nhận dạng trong một script duy nhất. Điều này hữu ích khi bạn muốn xác thực mã QR đã tạo ngay lập tức sau khi tạo nó.

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)

Kịch bản hoàn chỉnh này đầu tiên tạo một hình ảnh mã QR có tên royal_mail_qr.png. Sau đó nó tải cùng một hình ảnh đó bằng BarCodeReader, giải mã mã QR và in ra loại mã vạch cùng dữ liệu đã mã hoá.

Xác thực dữ liệu QR Code đã giải mã

Đối với các quy trình bưu chính và vận chuyển, việc kiểm tra mọi mã QR được tạo trước khi in hoặc gửi tới hệ thống khác là một thực hành tốt. Bạn có thể so sánh kết quả giải mã với dữ liệu gốc:

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

Bước xác thực đơn giản này giúp xác nhận rằng hình ảnh QR được tạo chứa cùng dữ liệu mà ứng dụng của bạn dự định mã hoá.

Xử lý các định dạng hình ảnh QR Code khác nhau

Các ví dụ trên lưu mã QR dưới dạng PNG vì PNG là định dạng hình ảnh không mất dữ liệu và thường là lựa chọn tốt cho quy trình in ấn và quét. Aspose.BarCode cũng có thể lưu hình ảnh mã vạch ở các định dạng hỗ trợ khác khi cần.

Định dạngTrường hợp sử dụng
PNGĐầu ra không mất dữ liệu cho việc in ấn và quét
JPGTệp tin nhỏ hơn khi việc nén nhẹ chấp nhận được
BMPĐầu ra bitmap đơn giản cho các hệ thống cũ
GIFĐầu ra hình ảnh nhẹ cho các trường hợp sử dụng cơ bản
TIFFQuy trình tài liệu lưu trữ hoặc độ phân giải cao

Để thay đổi định dạng hình ảnh, cập nhật đối số thứ hai của phương thức save(). Ví dụ, sử dụng giá trị tương ứng từ generation.BarCodeImageFormat.

Các thực tiễn tốt nhất cho quy trình mã QR Royal Mail

  • Sử dụng định dạng payload chính xác yêu cầu bởi quy trình Royal Mail, vận chuyển hoặc tạo nhãn của bạn.
  • Giữ hình ảnh mã QR rõ ràng, độ tương phản cao và không bị biến dạng.
  • Ưu tiên các định dạng không mất dữ liệu như PNG cho nhãn in.
  • Giải mã hình ảnh đã tạo sau khi tạo để xác minh payload đã mã hoá.
  • Lưu cả payload gốc và kết quả giải mã trong nhật ký khi khắc phục sự cố nhãn.

Các lớp API chung được sử dụng

Các lớp và giá trị sau của Aspose.BarCode for Python via .NET được sử dụng trong bài viết này:

APIPurpose
generation.BarcodeGeneratorTạo hình ảnh mã vạch.
generation.EncodeTypes.QRChỉ định QR Code làm loại mã vạch để tạo.
generation.BarCodeImageFormat.PNGLưu hình ảnh mã vạch đã tạo dưới dạng PNG.
br.BarCodeReaderĐọc hình ảnh mã vạch.
br.DecodeType.QRChỉ định QR Code làm loại mã vạch để nhận dạng.
read_bar_codes()Trả về kết quả mã vạch được phát hiện từ hình ảnh.
result.code_textLấy văn bản mã vạch đã giải mã.
result.code_type_nameLấy tên loại mã vạch đã phát hiện.

Kết luận

Bạn có thể tạo và đọc mã QR Royal Mail trong Python chỉ với vài dòng mã bằng cách sử dụng Aspose.BarCode for Python via .NET. Sử dụng generation.BarcodeGenerator với generation.EncodeTypes.QR để tạo mã QR, lưu nó bằng generation.BarCodeImageFormat.PNG, và sau đó sử dụng br.BarCodeReader với br.DecodeType.QR để giải mã hình ảnh đã tạo.

Quy trình tạo và nhận dạng này hữu ích cho việc xác thực mã QR trước khi chúng được in trên nhãn bưu điện, lưu trữ trong hệ thống vận chuyển, hoặc gửi tới các ứng dụng logistics downstream.

FAQs

  • Cách dễ nhất để tạo mã QR Royal Mail trong Python là gì?
    Sử dụng generation.BarcodeGenerator với generation.EncodeTypes.QR, truyền văn bản payload liên quan đến Royal Mail của bạn, và lưu kết quả bằng cách gọi generator.save().

  • Làm thế nào để tôi đọc hình ảnh mã QR Royal Mail trong Python?
    Sử dụng br.BarCodeReader(file_name, br.DecodeType.QR) và lặp qua các kết quả được trả về bởi read_bar_codes().

  • Thuộc tính nào trả về văn bản QR code đã giải mã?
    Sử dụng result.code_text để lấy giá trị đã giải mã từ mỗi kết quả nhận dạng mã vạch.

  • Có thể tôi sử dụng mã này cho Royal Mail Mailmark không?
    Không phải trực tiếp. Bài viết này sử dụng việc tạo và nhận dạng QR Code tiêu chuẩn. Royal Mail Mailmark là một loại mã vạch bưu chính riêng biệt với cấu trúc dữ liệu yêu cầu riêng của nó.

Đọc thêm