Создание штрих-кода

Создание штрих-кода

Создание штрих-кода

Пип-лайн генерации штрихкодов в 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

 Русский