Giới thiệu

Aspose.BarCode FOSS cho Python cung cấp các lớp tùy chọn theo ký hiệu kiểm soát hành vi mã hoá trên tất cả bảy định dạng mã vạch được hỗ trợ. Mỗi lớp tùy chọn kế thừa từ EncodeOptions và bổ sung các thuộc tính đặc thù cho ký hiệu của nó — chế độ mã hoá Code 128, lựa chọn ASCII Code 39, mức độ sửa lỗi QR, và xử lý chữ số kiểm tra EAN/UPC.

Bài viết này đề cập đến từng lớp tùy chọn, các thuộc tính của chúng, và các ví dụ mã hoạt động. Các lớp có sẵn từ gói aspose_barcode_foss cấp cao nhất.


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

Chế độ Mã hoá Code 128

Code128Options kiểm soát bộ ký tự Code 128 nào mà bộ mã hoá sử dụng. Thuộc tính encode_mode chấp nhận một giá trị enum Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, hoặc CODE_BC. AUTO tự động chọn cách mã hoá gọn nhất. CODE_C được tối ưu cho dữ liệu chỉ gồm chữ số (cặp chữ số được mã hoá thành một điểm mã).

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

Code 128 cũng hỗ trợ các thuộc tính gs1_enabled và eci_assignment_number được kế thừa từ EncodeOptions cho GS1 và siêu dữ liệu ECI.

Code 39 Mã hoá

Code39Options kiểm soát việc bộ mã có sử dụng bộ ký tự 43 cơ bản hay phần mở rộng Full ASCII. Đặt full_ascii=True để bật chế độ Full ASCII, chế độ này mã hoá toàn bộ dải 128 ký tự ASCII bằng các cặp chuyển đổi. Thuộc tính tùy chọn add_check_digit sẽ thêm một chữ số kiểm tra modulo-43.

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 bộ cấu hình phong phú nhất trong số các symbologies được hỗ trợ:

  • error_correction_level: QrErrorCorrectionLevel.L (7%), .M (15%), .Q (25%), .H (30%)
  • encoding_mode: QrEncodeMode.AUTO, .NUMERIC, .ALPHANUMERIC, .BYTE, .KANJI
  • version: phiên bản QR (1–40), điều khiển kích thước ký hiệu
  • mask: mẫu mặt nạ (0–7) để 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()

Chữ số kiểm tra EAN và UPC

Ean13Options, Ean8Options, UpcaOptions và UpceOptions mỗi cái đều có thuộc tính allow_check_digit_input. Mặc định, thư viện tính toán chữ số kiểm tra tự động từ dữ liệu. Đặt allow_check_digit_input=True nếu dữ liệu của bạn đã bao gồm chữ 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),
)

Tùy chọn hiển thị

RenderOptions áp dụng cho tất cả các biểu tượng và kiểm soát đầu ra hình ảnh. Đưa nó vào to_svg() hoặc to_png():

Thuộc tínhKiểuMô tả
scalefloatHệ số nhân tỷ lệ đồng nhất
dpiintĐộ phân giải cho đầu ra PNG
module_widthfloatChiều rộng của một mô-đun mã vạch
module_heightfloatChiều cao của một mô-đun mã vạch
quiet_zonefloatKhoảng đệm không gian trắng quanh mã vạch
foreground_colorstrMàu Hex cho các thanh (ví dụ, "#000000")
background_colorstrMàu Hex cho nền
transparent_backgroundboolNền trong suốt cho PNG
show_textboolHiển thị văn bản có thể đọc được dưới mã vạch
font_familystrPhông chữ cho văn bản có thể đọc được
font_sizefloatKích thước phông chữ cho văn bản có thể đọc được
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

Mọi việc xác thực tùy chọn mã hoá đều diễn ra trong thời gian phân tích. Nếu dữ liệu không hợp lệ hoặc các tùy chọn không tương thích được cung cấp, thư viện sẽ ném ra một ngoại lệ có kiểu trước khi bất kỳ quá trình mã hoá nào bắt đầu:

  • InvalidInputError — dữ liệu chứa các ký tự không được biểu tượng hỗ trợ
  • EncodingError — mã hoá thất bại (ví dụ, dữ liệu vượt quá dung lượng)
  • SymbologyNotFoundError — tên ký hiệu không được nhận dạng được truyền tới generate()
  • UnsupportedCapabilityError — tính năng yêu cầu không khả dụng cho ký hiệu này

Tất cả các lớp ngoại lệ đều kế thừa từ BarcodeError.


Bắt đầu nhanh

git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .

Tạo mã vạch với các tùy chọn mã hoá 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,
    )))

Định dạng được hỗ trợ

SymbologyKiểuLớp Tùy chọnCác thuộc tính chính
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

Định dạng đầu ra:

Định dạngPhần mở rộngExport
SVG.svg✓
PNG.png✓

Mã nguồn mở & Bản quyền

Aspose.BarCode FOSS cho Python được cấp phép MIT. Mã nguồn có sẵn trên GitHub; biên dịch từ mã nguồn. Không có phụ thuộc gốc, không có thu thập dữ liệu, không giới hạn sử dụng.


Bắt đầu

Tài nguyên liên quan