Появяване на баркод

Появяване на баркод

Появяване на баркод

Пиплайнът за генериране на баркодове в 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

A. Също така: 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)Сливане 2 RenderOptions (по-късните стойности се заменят)
coerce_options(options)Нормализиране на суровите опции в RenderOptions

Съвети и най-добри практики

  • Използвайте помощни средства за символизиране (code128(), qr(), и т.н.) вместо generate() за безопасност на типа те гарантират, че се използва правилният клас опции.
  • Съветът на ЕС Barcode.symbol Имотът дава пряк достъп до EncodedSymbol за персонализирано изобразяване или анализ.
  • BarcodeService е бездържавна един инстанция може да генерира баркодове в множество нишки.
  • Catch BarcodeError като базови клас, който да обработва всички изключения, свързани с баркод в един блок.

Общи проблеми

IssueCauseРемонтиране
SymbologyNotFoundErrorИме не регистрирано в: SymbologyRegistryПроверете правопис; използвайте канонични имена.
InvalidInputErrorДанните нарушават изискванията за символиката.Проверка на изискванията за множество символи и дължина
Празен изход на SVGНяма кодирани модули.Проверка дали данните не са празни и валидни за символогията

See Also

 Български