QRコードの生成は、郵便、配送、物流アプリケーションで一般的な要件です。Pythonアプリケーションで、追跡値、ルーティング値、郵便番号、またはカスタム郵便ペイロードなど、Royal Mail に関連するデータを含む QR コードを作成する必要がある場合は、Aspose.BarCode for Python via .NET を使用して QR 画像を生成し、検証のために読み取ることができます。

この記事では、PythonでRoyal Mail QRコードを作成し、生成されたQRコード画像をデコードします。コード例は2つの明確なセクションに分かれており、1つはQRコードの生成、もう1つはQRコードの読み取りです。

注: 本記事では、「Royal Mail QR code」は、Royal Mail に関連するペイロードデータを格納する標準的な QR コードを指します。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 コードであることを指定します。最後に、save() メソッドは生成されたバーコード画像を PNG ファイルとしてエクスポートします。

サンプルの royal_mail_data の値を実際の Royal Mail ペイロードに置き換えることができます。たとえば、トラッキング番号、ラベル識別子、郵便番号、またはアプリケーションで必要なその他の郵便関連の値をエンコードすることができます。

PythonでRoyal Mail QRコードを読み取る手順

QRコードを生成した後、エンコードされたデータが正しいことを確認するために、コードを再度読み取ることができます。次の手順に従ってください:

  1. aspose.barcodeからbarcoderecognition名前空間をインポートします。
  2. BarCodeReaderインスタンスを作成し、QRコード画像のパスを渡します。
  3. バーコードのタイプをbr.DecodeType.QRに設定します。
  4. read_bar_codes()を呼び出してバーコード結果を抽出します。
  5. code_textプロパティからデコードされたテキストを読み取ります。

PythonでRoyal Mail 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 コードを作成直後にすぐに検証したい場合に便利です。

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 コード データの検証

郵便および出荷ワークフローでは、印刷したり別のシステムに送信したりする前に、生成されたすべての 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 コード画像形式の処理

上記の例では、QRコードを PNG として保存しています。PNG はロスレス画像フォーマットであり、印刷やスキャンのワークフローに通常適した選択です。Aspose.BarCode は、必要に応じて他のサポートされているフォーマットでもバーコード画像を保存できます。

形式使用例
PNG印刷やスキャン用のロスレス出力
JPG若干の圧縮が許容できる、サイズが小さいファイル
BMPレガシーシステム向けのシンプルなビットマップ出力
GIF基本的な使用例向けの軽量画像出力
TIFFアーカイブや高解像度ドキュメントワークフロー向け

画像形式を変更するには、save() メソッドの2番目の引数を更新します。たとえば、generation.BarCodeImageFormat の対応する値を使用します。

Royal Mail QRコードワークフローのベストプラクティス

  • ロイヤルメール、配送、またはラベル生成ワークフローで必要とされる正確なペイロード形式を使用してください。
  • QRコード画像は鮮明で高コントラスト、歪みがないように保ってください。
  • 印刷ラベルには PNG などのロスレス形式を優先してください。
  • 作成後に生成された画像をデコードし、エンコードされたペイロードを検証してください。
  • ラベルの問題をトラブルシューティングする際は、元のペイロードとデコード結果の両方をログに保存してください。

使用される共通 API クラス

この記事で使用されているクラスと値は、次の Aspose.BarCode for Python via .NET です:

API目的
generation.BarcodeGeneratorバーコード画像を生成します。
generation.EncodeTypes.QR生成時のバーコードタイプとして QR コードを指定します。
generation.BarCodeImageFormat.PNG生成されたバーコード画像を PNG として保存します。
br.BarCodeReaderバーコード画像を読み取ります。
br.DecodeType.QR認識時のバーコードタイプとして QR コードを指定します。
read_bar_codes()画像から検出されたバーコード結果を返します。
result.code_textデコードされたバーコードテキストを取得します。
result.code_type_name検出されたバーコードタイプ名を取得します。

結論

Python で数行のコードだけで Royal Mail QR コードを生成および読み取ることができます。Aspose.BarCode for Python via .NET を使用します。generation.BarcodeGeneratorgeneration.EncodeTypes.QR と共に使用して QR コードを作成し、generation.BarCodeImageFormat.PNG で保存し、次に br.BarCodeReaderbr.DecodeType.QR と共に使用して生成された画像をデコードします。

この生成および認識ワークフローは、QRコードが郵便ラベルに印刷される前、出荷システムに保存される前、または下流の物流アプリケーションに送信される前に検証するのに役立ちます。

よくある質問

  • PythonでRoyal Mail QRコードを生成する最も簡単な方法は何ですか?
    generation.BarcodeGeneratorgeneration.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コードの生成と認識を使用しています。Royal Mail Mailmarkは、独自の必須データ構造を持つ別個の郵便バーコードタイプです。

続きを読む