Создание штрих-кода
Создание штрих-кода
Пип-лайн генерации штрихкодов в 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 | Модули не кодируются. | Проверка, что данные не пусты и действительны для символики. |