Породження штрих-кодів

Породження штрих-кодів

Породження штрих-кодів

Створення штрих-кодів в 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() метод:

  1. Подивиться на … SymbologyDefinition з реєстру
  2. Покликає InputParser.parse() для підтвердження та нормалізації введеного даних;
  3. Покликає SymbologyEncoder.encode() виробляти EncodedSymbol
  4. Повертає a Barcode обертання символу та його профілю;

SymbologyRegistry

SymbologyRegistry магазини SymbologyDefinition об’єкти, вкладені канонічними іменами та псевдонім:

MethodDescription
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 об’єднує всі компоненти, необхідні для підтримки однієї симвології:

PropertyTypeDescription
namestrКанонічний ідентифікатор симвології
parserInputParserПеревірка та нормалізація даних входу
encoderSymbologyEncoderКодирує дані в матрицю модуля.
profileSymbologyProfileПопередні параметри, можливості та правила тексту
aliasestuple[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 є проміжним зображенням між аналізом та кодуванням:

PropertyDescription
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 зливає варіанти рендеру, надані користувачем, із символічними умовними параметрами:

MethodDescription
resolve(profile, options)Виготовлення ResolvedRenderOptions об’єднавши опції користувача з замовчуванням профілю;
merge_options(earlier, later)Злиття два. RenderOptions (позніші значення перемінюються)
coerce_options(options)Нормалізація опцій на “суровині” в RenderOptions

Поради та найкращі практики

  • Використовуйте допоміжні символічні знаки (code128(), qr(), і т.д.) замість generate() для безпеки типу вони забезпечують використання правильного класу опцій.
  • У. Barcode.symbol нерухомість дає прямий доступ до EncodedSymbol для індивідуального видання або аналізу.
  • BarcodeService є безстатевим одна інстанція може генерувати штрих-коди в декількох нитках.
  • Catch BarcodeError як базовий клас для обробки всіх винятків, пов’язаних з штрих-кодами в одному блоку.

Загальні питання

IssueCauseВиправлення
SymbologyNotFoundErrorНазва не зареєстрована в SymbologyRegistryПеревірте правопис; використовуйте канонічні імена.
InvalidInputErrorДані порушують вимоги симвології.Перевірка вимог до набору і довжини символів
Пусте вихід SVGНе кодовані модулі.Перевірка даних не є порожнім і дійсним для симвології

See Also

 Українська