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 :

  1. Nhìn lên The SymbologyDefinition Từ Registry
  2. gọi là InputParser.parse() để xác nhận và bình thường hóa input
  3. gọi là SymbologyEncoder.encode() để sản xuất một EncodedSymbol
  4. 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:

MethodDescription
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:

PropertyTypeDescription
namestrTác giả: Canonical Symbolology Identifier
parserInputParserXác định và bình thường hóa dữ liệu nhập khẩu
encoderSymbologyEncoderMã hóa dữ liệu vào một module matrix
profileSymbologyProfileNhược điểm, khả năng và chính sách văn bản
aliasestuple[str, ...]Tên thay thế cho Lookup

EncodedSymbol

Các EncodedSymbol Được trả lại bởi một encoder chứa:

  • matrix - A ModuleMatrix với Mạng Module Logic của Barcode
  • metadata - A SymbolMetadata vớ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:

PropertyDescription
symbologyTên biểu tượng Canonical Symbolology
dataThông tin nhập khẩu (str hoặc bytes)
input_kindCách nhập được phân loại
code128_encode_modeMã giải quyết 128 chế độ (nếu có)
code39_encode_modeGiải quyết mã 39 chế độ (nếu có)
qr_error_correction_levelGiải quyết lỗi QR (nếu có)
qr_versionPhiên bản QR (nếu có)
qr_encoding_modeGiả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:

MethodDescription
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.symbol tài sản cung cấp quyền truy cập trực tiếp đến EncodedSymbol cho rendering hoặc phân tích tùy chỉnh.
  • BarcodeService khô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 BarcodeError như 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

IssueCauseFix Đặt
SymbologyNotFoundErrorTên không đăng ký trong SymbologyRegistryKiểm tra các dấu hiệu; sử dụng tên canonical
InvalidInputErrorDữ liệu vi phạm yêu cầu biểu tượngKiể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ẩuKhông có module mã hóaKiểm tra dữ liệu không trống và hợp lệ cho biểu tượng

See Also

 Tiếng Việt