Появяване на баркод
Появяване на баркод
Пиплайнът за генериране на баркодове в 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
A. Също така: 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) | Сливане 2 RenderOptions (по-късните стойности се заменят) |
coerce_options(options) | Нормализиране на суровите опции в RenderOptions |
Съвети и най-добри практики
- Използвайте помощни средства за символизиране (
code128(),qr(), и т.н.) вместоgenerate()за безопасност на типа те гарантират, че се използва правилният клас опции. - Съветът на ЕС
Barcode.symbolИмотът дава пряк достъп доEncodedSymbolза персонализирано изобразяване или анализ. BarcodeServiceе бездържавна един инстанция може да генерира баркодове в множество нишки.- Catch
BarcodeErrorкато базови клас, който да обработва всички изключения, свързани с баркод в един блок.
Общи проблеми
| Issue | Cause | Ремонтиране |
|---|---|---|
SymbologyNotFoundError | Име не регистрирано в: SymbologyRegistry | Проверете правопис; използвайте канонични имена. |
InvalidInputError | Данните нарушават изискванията за символиката. | Проверка на изискванията за множество символи и дължина |
| Празен изход на SVG | Няма кодирани модули. | Проверка дали данните не са празни и валидни за символогията |