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 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
输出格式:SVG 和 PNG。