Introduction

Aspose.BarCode FOSS for Python provides per-symbology option classes that control encoding behavior across all seven supported barcode formats. Each option class inherits from EncodeOptions và thêm các thuộc tính cụ thể vào biểu tượng của nó — mã 128 chế độ mã hóa, mã 39 ASCII lựa chọn, QR lỗi sửa chữa mức, và EAN / UPC kiểm tra xử lý số.

Bài viết này bao gồm mỗi lớp tùy chọn, thuộc tính của nó và ví dụ mã làm việc. Tất cả các lớp học có sẵn từ cấp cao nhất aspose_barcode_foss gói .


Các tính năng chính

Mã 128 Encode Modes

Code128Options điều khiển mà mã 128 ký tự đặt coder sử dụng. encode_mode Tài sản chấp nhận A Code128EncodeMode Giá trị Enum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC,hoặc CODE_BC.AUTO tự động chọn mã hóa nhỏ gọn nhất.CODE_C được tối ưu hóa cho dữ liệu chỉ số (một cặp số được mã hoá như một điểm mã đơn).

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()

Mã 128 cũng hỗ trợ gs1_enabledeci_assignment_number Tài sản được thừa hưởng từ EncodeOptions - Đối với GS1 và ECI metadata.

39 mã hóa

Code39Options kiểm tra xem mã hóa có sử dụng bộ định dạng 43 nhân vật cơ bản hay phần mở rộng ASCII đầy đủ. full_ascii=True để bật chế độ ASCII đầy đủ, mã hóa phạm vi AScII 128 tính bằng cách sử dụng cặp chuyển đổi. add_check_digit - Tính năng của modulo-43 check digit.

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options

bc = barcode.code39(
    "Hello",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()

QR Code cấu hình

QrOptions cung cấp cấu hình nhiều nhất trong số tất cả các biểu tượng:

  • error_correction_level: QrErrorCorrectionLevel.L (7%) trong số đó, .M (Trung Quốc) 15 %, .Q 25 % (tạm dịch:, .H (30%) Số lượng
  • encoding_mode: QrEncodeMode.AUTO, .NUMERIC, .ALPHANUMERIC, .BYTE, .KANJI
  • version:Phiên bản QR (1–40), điều khiển kích thước biểu tượng
  • mask: mô hình mặt nạ (0–7) cho việc lựa chọn thủ công
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,
    ),
)
png_bytes = bc.to_png()

EAN và UPC Check Digits

Ean13Options, Ean8Options, UpcaOptions, và UpceOptions Mỗi người có một allow_check_digit_input theo mặc định, thư viện tính toán số kiểm tự động từ dữ liệu. allow_check_digit_input=True Nếu dữ liệu của bạn đã bao gồm số kiểm tra.

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options

# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()

# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

Rendering Options

RenderOptions áp dụng cho tất cả các biểu tượng và kiểm soát kết quả thị giác. to_svg() hoặc to_png():

PropertyTypeDescription
scalefloatTỷ lệ đa số Uniform
dpiintQuyết định về sản xuất PNG
module_widthfloatMở rộng của một module barcode
module_heightfloatĐộ cao của một module barcode
quiet_zonefloatWhitespace padding xung quanh barcode
foreground_colorstrMàu sắc Hex cho các thanh (ví dụ:., "#000000")
background_colorstrMàu sắc Hex cho nền
transparent_backgroundboolHình nền minh bạch cho PNG
show_textboolHiển thị văn bản đọc bằng người dưới mã thanh
font_familystrTác giả: Man-readable text
font_sizefloatKích thước phông chữ cho văn bản dễ đọc của con người
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",
))

Xử lý Lỗi

Nếu dữ liệu không phù hợp hoặc các tùy chọn không tương thích được cung cấp, thư viện sẽ đưa ra một ngoại lệ đã viết trước khi bất kỳ mã hóa nào bắt đầu:

  • InvalidInputError - Dữ liệu chứa các ký tự không được hỗ trợ bởi biểu tượng
  • EncodingError - lỗi mã hóa (ví dụ, dữ liệu vượt quá khả năng)
  • SymbologyNotFoundError - Tên biểu tượng không được công nhận đã chuyển đến generate()
  • UnsupportedCapabilityError - tính năng được yêu cầu không sẵn dùng cho biểu tượng này

Tất cả các lớp ngoại lệ được thừa hưởng từ BarcodeError.


Khởi động nhanh

pip install aspose-barcode-foss

Tạo mã thanh với các tùy chọn mã hóa khác nhau và lưu chúng:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
    Code128Options, Code128EncodeMode,
    QrOptions, QrErrorCorrectionLevel,
    RenderOptions,
)

# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
    "9876543210",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
    f.write(c128.to_svg())

# QR with high error correction
qr = barcode.qr(
    "https://example.com",
    encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
    f.write(qr.to_png(options=RenderOptions(scale=4.0)))

# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
    f.write(ean.to_svg(options=RenderOptions(
        foreground_color="#003366",
        show_text=True,
    )))

Các định dạng hỗ trợ

SymbologyTypeOptions lớp họcTài sản chính
Mã 1281DCode128Optionsencode_mode
Mã 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
Mã QR2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

Các định dạng xuất khẩu:

FormatExtensionExport
SVG.svg
PNG.png

Open Source & Giấy phép

Aspose.BarCode FOSS for Python is MIT licensed. The source is available on GitHub gói cài đặt từ PyPI Với pip install aspose-barcode-foss.Không có phụ thuộc bản địa, không có telemetry, chưa có giới hạn sử dụng.


bắt đầu

Tài nguyên liên quan