Barcode thế hệ
Barcode thế hệ
Các đường ống tạo mã vạch trong Aspose.BarCode FOSS cho Python theo một kiến trúc ba giai đoạn: parse → mã hóa → render.- Tính năng của API (generate() và các trợ lý biểu tượng) tổ chức những giai đoạn này thông qua BarcodeService.
API cấp cao
Cách đơn giản nhất để tạo ra một mã thanh là thông qua các chức năng trợ giúp per-symbology:
import aspose_barcode_foss as barcode
bc_128 = barcode.code128("ABC123")
bc_qr = barcode.qr("https://example.com")
bc_ean = barcode.ean13("590123412345")
bc_upca = barcode.upca("01234567890")Mỗi người giúp lại một Barcode Mục tiêu: Call to_svg() cho SVG sản xuất hoặc to_png() sản xuất PNG.
Generic của generate() Tính năng chấp nhận một dòng tên biểu tượng:
bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()Tên biểu tượng hợp lệ: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".
BarcodeService
BarcodeService - Thống kê các giai đoạn đường ống 3 (thời gian) và có một SymbologyRegistry Và một OptionsResolver:
from aspose_barcode_foss import BarcodeService
# The default service is used by all helper functions
# You can create a custom service for testing or extension:
service = BarcodeService(registry=registry, options_resolver=resolver)
result = service.generate("code128", "DATA")Các generate() Phương pháp :
- Nhìn lên The
SymbologyDefinitionTừ Registry - gọi là
InputParser.parse()để xác nhận và bình thường hóa input - gọi là
SymbologyEncoder.encode()để sản xuất mộtEncodedSymbol - Trở lại a
BarcodeĐặt biểu tượng và hồ sơ của nó
SymbologyRegistry
SymbologyRegistry cửa hàng SymbologyDefinition Các đối tượng được chìa khóa bằng tên và liên kết canonic:
| Method | Description |
|---|---|
get_definition(name) | Tạo một định nghĩa biểu tượng hoàn chỉnh |
get_parser(name) | Nhận được The InputParser Đối với một biểu tượng |
get_encoder(name) | Nhận được The SymbologyEncoder Đối với một biểu tượng |
get_profile(name) | Nhận được The SymbologyProfile Với default |
get_text_policy(name) | Nhận được The TextLayoutPolicy Text rendering văn bản |
register(definition) | Đăng ký một mới SymbologyDefinition |
EncoderRegistry là một alias tương thích với backward SymbologyRegistry.
SymbologyDefinition
A SymbologyDefinition Các bộ phận được thiết kế để hỗ trợ một biểu tượng:
| Property | Type | Description |
|---|---|---|
name | str | Tác giả: Canonical Symbolology Identifier |
parser | InputParser | Xác định và bình thường hóa dữ liệu nhập khẩu |
encoder | SymbologyEncoder | Mã hóa dữ liệu vào một module matrix |
profile | SymbologyProfile | Nhược điểm, khả năng và chính sách văn bản |
aliases | tuple[str, ...] | Tên thay thế cho Lookup |
EncodedSymbol
Các EncodedSymbol Được trả lại bởi một encoder chứa:
matrix- AModuleMatrixvới Mạng Module Logic của Barcodemetadata- ASymbolMetadatavới tên biểu tượng, hiển thị văn bản và chi tiết mã hóa
bc = barcode.code128("TEST")
symbol = bc.symbol
print(f"Matrix: {symbol.matrix.width}x{symbol.matrix.height}")
print(f"Display text: {symbol.metadata.display_text}")
print(f"Symbology: {symbol.metadata.symbology}")ModuleMatrix cung cấp A get(x, y) phương pháp trả về giá trị mô-đun ở một vị trí nhất định.
NormalizedPayload
Các NormalizedPayload là sự đại diện giữa parsing và coding:
| Property | Description |
|---|---|
symbology | Tên biểu tượng Canonical Symbolology |
data | Thông tin nhập khẩu (str hoặc bytes) |
input_kind | Cách nhập được phân loại |
code128_encode_mode | Mã giải quyết 128 chế độ (nếu có) |
code39_encode_mode | Giải quyết mã 39 chế độ (nếu có) |
qr_error_correction_level | Giải quyết lỗi QR (nếu có) |
qr_version | Phiên bản QR (nếu có) |
qr_encoding_mode | Giải quyết chế độ mã hóa QR (nếu có) |
OptionsResolver
OptionsResolver kết hợp các tùy chọn render được cung cấp bởi người dùng với biểu tượng mặc định:
| Method | Description |
|---|---|
resolve(profile, options) | sản xuất a ResolvedRenderOptions bằng cách kết hợp các tùy chọn người dùng với default profile |
merge_options(earlier, later) | Nhập 2 RenderOptions (Những giá trị sau này vượt quá) |
coerce_options(options) | Tính năng bình thường hóa các tùy chọn nguyên liệu trong RenderOptions |
Mẹo và Thực hành Tốt nhất
- Sử dụng các trợ lý per-symbology (
code128(),qr(),(và) thay vìgenerate()cho loại an toàn - họ đảm bảo lớp lựa chọn đúng được sử dụng. - Các
Barcode.symboltài sản cung cấp quyền truy cập trực tiếp đếnEncodedSymbolcho rendering hoặc phân tích tùy chỉnh. BarcodeServicekhông có trạng thái - một trường hợp có thể tạo ra mã thanh trên nhiều dây.- Catch
BarcodeErrornhư một lớp cơ sở để xử lý tất cả các ngoại lệ liên quan đến mã thanh trong một khối.
Các vấn đề thường gặp
| Issue | Cause | Fix Đặt |
|---|---|---|
SymbologyNotFoundError | Tên không đăng ký trong SymbologyRegistry | Kiểm tra các dấu hiệu; sử dụng tên canonical |
InvalidInputError | Dữ liệu vi phạm yêu cầu biểu tượng | Kiểm tra thiết lập nhân vật và yêu cầu chiều dài |
| Tự do SVG xuất khẩu | Không có module mã hóa | Kiểm tra dữ liệu không trống và hợp lệ cho biểu tượng |