如何在 Aspose.BarCode FOSS 中配置编码选项
Problem
每种条码符号都有其自己的编码规则——QR Code 的错误纠正级别、Code 128 的编码模式、EAN/UPC 的校验位处理。Aspose.BarCode FOSS 用于 Python 提供了每种符号专用的选项类,您可以在生成时控制这些参数。
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel
bc = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
svg = bc.to_svg()先决条件
- Python 3.12 或更高版本
- pip 包管理器
aspose-barcode-foss从源码构建
QR Code 选项
QrOptions 类控制 QR Code 编码。将 error_correction_level 设置为 QrErrorCorrectionLevel.L、M、Q 或 H 之一。更高的级别会增加冗余,但会导致符号更大。使用 encoding_mode 选择特定的 QR 数据模式(QrEncodeMode.NUMERIC、ALPHANUMERIC、BYTE 或 KANJI),或保持为 AUTO 以自动选择。version 属性(1–40)控制符号大小,mask(0–7)覆盖掩码模式。
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
options = QrOptions(
error_correction_level=QrErrorCorrectionLevel.H,
encoding_mode=QrEncodeMode.BYTE,
version=5,
)
bc = barcode.qr("DATA", encode=options)Code 128 选项
Code128Options 类公开 encode_mode,其值来自 Code128EncodeMode:AUTO、CODE_A、CODE_B、CODE_C、CODE_AB、CODE_AC、CODE_BC。AUTO 模式下,编码器选择最短的表示。限制为特定子集(例如针对仅数字数据的 CODE_C)可以减小符号宽度。
from aspose_barcode_foss import Code128Options, Code128EncodeMode
options = Code128Options(encode_mode=Code128EncodeMode.CODE_C)
bc = barcode.code128("123456", encode=options)Code 39 选项
Code39Options 类具有两个关键属性:full_ascii 启用 Full ASCII 编码(扩展字符集超出大写字母和数字),add_check_digit 向符号添加 modulo-43 校验位。
from aspose_barcode_foss import Code39Options
options = Code39Options(full_ascii=True, add_check_digit=True)
bc = barcode.code39("Hello", encode=options)EAN 和 UPC 校验位选项
Ean13Options、Ean8Options、UpcaOptions 和 UpceOptions 都支持 allow_check_digit_input。默认情况下,库会自动计算校验位——只提供有效负载数字(EAN-13 为 12 位,EAN-8 为 7 位,UPC-A 为 11 位)。将 allow_check_digit_input=True 设置为在输入中传递预先计算的校验位。
from aspose_barcode_foss import Ean13Options
# Auto-compute check digit (12 digits)
bc = barcode.ean13("590123412345")
# Pre-computed check digit (13 digits)
bc = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)UPC-E 编号系统
UpceOptions 添加一个 number_system 属性。UPC-E 条码使用编号系统 “0” 或 “1”。设置此属性以控制编码器使用的编号系统前缀。
from aspose_barcode_foss import UpceOptions
options = UpceOptions(number_system="0", allow_check_digit_input=False)
bc = barcode.upce("012345", encode=options)选项摘要
| Symbology | Options 类 | 关键属性 |
|---|---|---|
| Code 128 | Code128Options | encode_mode |
| Code 39 | Code39Options | full_ascii, add_check_digit |
| EAN-13 | Ean13Options | allow_check_digit_input |
| EAN-8 | Ean8Options | allow_check_digit_input |
| QR Code | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | UpcaOptions | allow_check_digit_input |
| UPC-E | UpceOptions | number_system, allow_check_digit_input |