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,.KANJIversion: phiên bản QR (1–40), điều khiển kích thước ký hiệumask: 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ính | Kiểu | Mô tả |
|---|---|---|
scale | float | Hệ số nhân tỷ lệ đồng nhất |
dpi | int | Độ phân giải cho đầu ra PNG |
module_width | float | Chiều rộng của một mô-đun mã vạch |
module_height | float | Chiều cao của một mô-đun mã vạch |
quiet_zone | float | Khoảng đệm không gian trắng quanh mã vạch |
foreground_color | str | Màu Hex cho các thanh (ví dụ, "#000000") |
background_color | str | Màu Hex cho nền |
transparent_background | bool | Nền trong suốt cho PNG |
show_text | bool | Hiển thị văn bản có thể đọc được dưới mã vạch |
font_family | str | Phông chữ cho văn bản có thể đọc được |
font_size | float | Kí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ớigenerate()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ợ
| Symbology | Kiểu | Lớp Tùy chọn | Các thuộc tính chính |
|---|---|---|---|
| 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 |
Định dạng đầu ra:
| Định dạng | Phần mở rộng | Export |
|---|---|---|
| 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.