在邮政、运输和物流应用中,生成二维码是常见需求。如果您的 Python 应用需要创建包含皇家邮政相关数据的二维码,例如跟踪值、路由值、邮政编码或自定义邮政负载,您可以使用 Aspose.BarCode for Python via .NET 来生成二维码图像并读取以进行验证。
在本文中,我们将在 Python 中创建一个皇家邮政 QR 码,然后解码生成的 QR 码图像。代码示例分为两个清晰的部分:一个用于 QR 码生成,另一个用于 QR 码读取。
Note: 在本文中,“Royal Mail QR code”指的是一种标准的 QR 码,用于存储与 Royal Mail 相关的负载数据。如果您需要 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
要在 QR 码中编码的数据
用实际的 Royal Mail 负载 / 跟踪 / 标签数据替换此处
royal_mail_data = “ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA”
生成皇家邮政二维码
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]-->
在此示例中,`BarcodeGenerator` 类从提供的文本创建 QR 码。`generation.EncodeTypes.QR` 值指定输出条形码必须是 QR 码。最后,`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 中读取 Royal Mail QR 码
以下代码示例展示了如何读取生成的皇家邮政二维码图像。
<!--[CODE_SNIPPET_START]-->
```python
from aspose.barcode import barcoderecognition as br
读取皇家邮政二维码
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)
<!--[CODE_SNIPPET_END]-->
`BarCodeReader` 类从指定的文件路径读取条形码图像。`br.DecodeType.QR` 值告诉读取器查找 QR 码。`read_bar_codes()` 方法返回检测到的条形码结果,每个结果通过 `code_type_name` 和 `code_text` 暴露条形码类型和解码文本。
## 完整的生成和读取示例
您也可以在单个脚本中结合生成和识别。这在您希望在创建 QR 码后立即验证生成的 QR 码时非常有用。
```python
from aspose.barcode import generation
from aspose.barcode import barcoderecognition as br
QR码中要编码的数据
将此替换为实际的Royal Mail负载/跟踪/标签数据
royal_mail_data = “ROYALMAIL|TRACKING=AA123456789GB|POSTCODE=SW1A1AA”
1) 生成皇家邮政二维码
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) 读取 Royal Mail QR 码
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 的二维码图像。随后使用 BarCodeReader 加载相同的图像,解码二维码,并打印条形码类型和编码数据。
验证已解码的二维码数据
对于邮政和运输工作流,最好在打印或将其发送到其他系统之前验证每个生成的 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 码保存为 PNG,因为 PNG 是一种无损图像格式,通常是打印和扫描工作流的良好选择。Aspose.BarCode 还可以在需要时将条形码图像保存为其他受支持的格式。
| Format | Use Case |
|---|---|
| PNG | 无损输出,适用于打印和扫描 |
| JPG | 文件更小,轻度压缩可接受的情况 |
| BMP | 适用于旧系统的简单位图输出 |
| GIF | 基本用例的轻量图像输出 |
| TIFF | 归档或高分辨率文档工作流 |
要更改图像格式,请更新 save() 方法的第二个参数。例如,使用 generation.BarCodeImageFormat 中的相应值。
皇家邮政二维码工作流最佳实践
- 使用您的 Royal Mail、运输或标签生成工作流所需的精确负载格式。
- 保持二维码图像清晰、高对比度且无失真。
- 对于打印标签,优先使用无损格式,如 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 码打印到邮政标签、存储在运输系统中或发送到下游物流应用程序之前进行验证非常有用。
FAQs
在 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 是一种独立的邮政条码类型,拥有其特定的数据结构要求。
