如何在 Aspose.BarCode FOSS 中配置编码选项

如何在 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)

选项摘要

SymbologyOptions 类关键属性
Code 128Code128Optionsencode_mode
Code 39Code39Optionsfull_ascii, add_check_digit
EAN-13Ean13Optionsallow_check_digit_input
EAN-8Ean8Optionsallow_check_digit_input
QR CodeQrOptionserror_correction_level, encoding_mode, version, mask
UPC-AUpcaOptionsallow_check_digit_input
UPC-EUpceOptionsnumber_system, allow_check_digit_input

另请参阅

 中文