Породження штрих-кодів
Породження штрих-кодів
Створення штрих-кодів в Aspose.BarCode FOSS для Python має три етапи: розгляд → кодування → рендерування.API високого рівня (generate() і пер-символогічних помічників) оркеструє ці етапи через BarcodeService.
API генерації високої якості
Найпростіший спосіб генерувати штрих-код - це за допомогою функцій помічника символіки:
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")Кожен помічник повертає Barcode Позвони. to_svg() для виходу SVG або to_png() для виходу PNG.
Генеричні препарати generate() функція приймає символічний ряд назви:
bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()Дійсні символічні назви: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".
BarcodeService
BarcodeService Координація трьох етапів трубопроводу. SymbologyRegistry і а 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")У. generate() метод:
- Подивиться на …
SymbologyDefinitionз реєстру - Покликає
InputParser.parse()для підтвердження та нормалізації введеного даних; - Покликає
SymbologyEncoder.encode()вироблятиEncodedSymbol - Повертає a
Barcodeобертання символу та його профілю;
SymbologyRegistry
SymbologyRegistry магазини SymbologyDefinition об’єкти, вкладені канонічними іменами та псевдонім:
| Method | Description |
|---|---|
get_definition(name) | Подарувати повне визначення симвології |
get_parser(name) | Знайдіть… InputParser для симвології |
get_encoder(name) | Знайдіть… SymbologyEncoder для симвології |
get_profile(name) | Знайдіть… SymbologyProfile з умовними значеннями |
get_text_policy(name) | Знайдіть… TextLayoutPolicy для відтворення тексту |
register(definition) | Зареєструйте новий SymbologyDefinition |
EncoderRegistry є спільним імені для: SymbologyRegistry.
SymbologyDefinition
А. - В. SymbologyDefinition об’єднує всі компоненти, необхідні для підтримки однієї симвології:
| Property | Type | Description |
|---|---|---|
name | str | Канонічний ідентифікатор симвології |
parser | InputParser | Перевірка та нормалізація даних входу |
encoder | SymbologyEncoder | Кодирує дані в матрицю модуля. |
profile | SymbologyProfile | Попередні параметри, можливості та правила тексту |
aliases | tuple[str, ...] | Альтернативні назви пошуку |
EncodedSymbol
У. EncodedSymbol повернена кодером містить:
matrixаModuleMatrixз мережкою логічного модуля штрихового коду;metadataаSymbolMetadataз символічною назвою, текстом для відображення та деталями кодування.
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 забезпечує: get(x, y) метод, який повертає значення модуля на даній позиції.
NormalizedPayload
У. NormalizedPayload є проміжним зображенням між аналізом та кодуванням:
| Property | Description |
|---|---|
symbology | Канонічна символіка |
data | Перевіреними даними входу (str або bytes) |
input_kind | Як класифікували вхідні дані |
code128_encode_mode | Регуляторний режим код 128 (якщо це можливо) |
code39_encode_mode | Регуляторний режим код 39 (якщо це можливо) |
qr_error_correction_level | Виправлення помилок QR (якщо це можливо) |
qr_version | Визначена версія QR (якщо це можливо) |
qr_encoding_mode | Резолюційний режим кодування QR (якщо це можливо) |
OptionsResolver
OptionsResolver зливає варіанти рендеру, надані користувачем, із символічними умовними параметрами:
| Method | Description |
|---|---|
resolve(profile, options) | Виготовлення ResolvedRenderOptions об’єднавши опції користувача з замовчуванням профілю; |
merge_options(earlier, later) | Злиття два. RenderOptions (позніші значення перемінюються) |
coerce_options(options) | Нормалізація опцій на “суровині” в RenderOptions |
Поради та найкращі практики
- Використовуйте допоміжні символічні знаки (
code128(),qr(), і т.д.) замістьgenerate()для безпеки типу вони забезпечують використання правильного класу опцій. - У.
Barcode.symbolнерухомість дає прямий доступ доEncodedSymbolдля індивідуального видання або аналізу. BarcodeServiceє безстатевим одна інстанція може генерувати штрих-коди в декількох нитках.- Catch
BarcodeErrorяк базовий клас для обробки всіх винятків, пов’язаних з штрих-кодами в одному блоку.
Загальні питання
| Issue | Cause | Виправлення |
|---|---|---|
SymbologyNotFoundError | Назва не зареєстрована в SymbologyRegistry | Перевірте правопис; використовуйте канонічні імена. |
InvalidInputError | Дані порушують вимоги симвології. | Перевірка вимог до набору і довжини символів |
| Пусте вихід SVG | Не кодовані модулі. | Перевірка даних не є порожнім і дійсним для симвології |