Quickstart

快速入门 — Aspose.BarCode 适用于 Python 的 FOSS

本指南逐步演示使用三种最常见的条码符号生成条码:Code 128、QR Code和EAN-13。每个示例展示了高级API、按符号的编码选项以及渲染控制。


生成 Code 128 条码

Code 128 是一种用于物流和运输的可变长度 1D 符号。code128() 辅助函数接受数据字符串和可选的 Code128Options:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode

bc = barcode.code128(
    "1234567890",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()

with open("code128.svg", "w") as f:
    f.write(svg)

Code128EncodeMode.CODE_C 针对仅数字数据进行了优化——它将数字对编码为单个代码点,从而生成更短的条码。


生成 QR Code

QR Code 是一种支持纠错和多种编码模式的 2D 符号。QrOptions 控制纠错级别、编码模式、版本和掩码模式:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

bc = barcode.qr(
    "https://example.com/product/12345",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.Q,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)

with open("qr.png", "wb") as f:
    f.write(bc.to_png())

错误纠正级别:L(恢复率 7%),M(15%),Q(25%),H(30%)。


生成一个 EAN-13 条形码

EAN-13 是一种用于零售的固定长度 1D 符号。提供 12 位有效负载数字——库会自动计算第 13 位校验码:

import aspose_barcode_foss as barcode

bc = barcode.ean13("590123412345")
svg = bc.to_svg()

with open("ean13.svg", "w") as f:
    f.write(svg)

若要提供您自行预先计算的校验码(共 13 位),请设置 allow_check_digit_input=True:

from aspose_barcode_foss import Ean13Options

bc = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

自定义渲染

RenderOptions 适用于所有符号并控制视觉输出。将其传递给 to_svg() 或 to_png():

import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions

bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
    scale=3.0,
    dpi=300,
    foreground_color="#1a1a1a",
    background_color="#ffffff",
    show_text=True,
    font_family="Courier New",
))

with open("upca.png", "wb") as f:
    f.write(png)

可用属性:scale、dpi、module_width、module_height、quiet_zone、foreground_color、background_color、transparent_background、show_text、font_family、font_size。


使用通用 generate() API

generate() 函数接受一个符号名称字符串,而不是调用专用的辅助函数:

import aspose_barcode_foss as barcode

bc = barcode.generate("code128", "ABC123")
svg = bc.to_svg()

有效的符号名称:"code128"、"code39"、"ean13"、"ean8"、"qr"、"upca"、"upce"。


错误处理

所有验证都在编码之前完成。如果提供了无效的数据或不兼容的选项,库会抛出一个已定义类型的异常:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import InvalidInputError

try:
    bc = barcode.ean13("ABC")  # EAN-13 requires digits
except InvalidInputError as e:
    print(f"Invalid input: {e}")

异常层次结构:

Exception当抛出时
InvalidInputError数据包含符号集不支持的字符
EncodingError编码失败(例如,数据超出符号集容量)
SymbologyNotFoundError传递给 generate() 的符号集名称无法识别
UnsupportedCapabilityError请求的功能在此符号系统中不可用

所有异常类都继承自 BarcodeError。


支持的符号体系

Symbology类型选项类关键属性
Code 1281DCode128Optionsencode_mode
Code 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR Code2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

输出格式:SVG 和 PNG。


下一步

另请参阅

 中文