Generování čárových kódů
Generování čárových kódů
Generační pipeline čárových kódů v Aspose.BarCode FOSS pro Python následuje třístupňovou architekturu: parsování → kódování → vykreslení. Vysoceúrovňový API (generate() a pomocníci pro jednotlivé symboliky) orchestruje tyto fáze prostřednictvím BarcodeService.
Generování na vysoké úrovni API
Nejjednodušší způsob, jak vygenerovat čárový kód, je pomocí pomocných funkcí pro jednotlivé symboliky:
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")Každý pomocník vrací objekt Barcode. Zavolejte to_svg() pro výstup SVG nebo to_png() pro výstup PNG.
Obecná funkce generate() přijímá řetězec s názvem symboliky:
bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()Platné názvy symbolik: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".
BarcodeService
BarcodeService koordinuje tři fáze potrubí. Obsahuje SymbologyRegistry a 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")Metoda generate():
- Vyhledá
SymbologyDefinitionv registru - Zavolá
InputParser.parse()k ověření a normalizaci vstupu - Zavolá
SymbologyEncoder.encode()k vytvořeníEncodedSymbol - Vrátí
Barcodeobalující symbol a jeho profil
SymbologyRegistry
SymbologyRegistry ukládá objekty SymbologyDefinition klíčované kanonickými názvy a aliasy:
| Metoda | Popis: |
|---|---|
get_definition(name) | Načíst kompletní definici symboliky |
get_parser(name) | Získat InputParser pro symbologii |
get_encoder(name) | Získat SymbologyEncoder pro symboliku |
get_profile(name) | Získejte SymbologyProfile s výchozími hodnotami |
get_text_policy(name) | Získá TextLayoutPolicy pro vykreslování textu |
register(definition) | Zaregistrujte nový SymbologyDefinition |
EncoderRegistry je zpětně kompatibilní alias pro SymbologyRegistry.
SymbologyDefinition
SymbologyDefinition balí všechny komponenty potřebné k podpoře jedné symboliky:
| Vlastnost | Typ: | Popis: |
|---|---|---|
name | str | Kanoniční identifikátor symboliky |
parser | InputParser | Validuje a normalizuje vstupní data |
encoder | SymbologyEncoder | Kóduje data do modulové matice |
profile | SymbologyProfile | Výchozí nastavení, schopnosti a textová politika |
aliases | tuple[str, ...] | Alternativní názvy pro vyhledávání |
EncodedSymbol
Vrácený EncodedSymbol z enkodéru obsahuje:
matrix—ModuleMatrixs logickou mřížkou modulů čárového kódumetadata—SymbolMetadatas názvem symboliky, zobrazovacím textem a podrobnostmi kódování
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 poskytuje get(x, y) metodu, která vrací hodnotu modulu na dané pozici.
NormalizedPayload
NormalizedPayload je mezilehlá reprezentace mezi parsováním a kódováním:
| Vlastnost | Popis: |
|---|---|
symbology | Kanoniální název symboliky |
data | Ověřená vstupní data (str nebo bytes) |
input_kind | Jak byl vstup klasifikován |
code128_encode_mode | Vyřešený režim Code 128 (je-li použitelné) |
code39_encode_mode | Vyřešený režim Code 39 (je-li relevantní) |
qr_error_correction_level | Vyřešená korekce chyb QR (je-li relevantní) |
qr_version | Vyřešená verze QR (je-li to použitelné) |
qr_encoding_mode | Vyřešený režim kódování QR (je-li to použitelné) |
OptionsResolver
OptionsResolver sloučuje uživatelem dodané renderovací možnosti se symbologickými výchozími hodnotami:
| Metoda | Popis: |
|---|---|
resolve(profile, options) | Vytvořte ResolvedRenderOptions sloučením uživatelských možností s výchozími nastaveními profilu |
merge_options(earlier, later) | Sloučte dva RenderOptions (hodnoty z pozdějšího přepíší) |
coerce_options(options) | Normalizovat surové možnosti do RenderOptions |
Tipy a osvědčené postupy
- Používejte pomocníky pro každou symbologii (
code128(),qr(), atd.) místogenerate()pro typovou bezpečnost — zajišťují, že je použita správná třída možností. - Vlastnost
Barcode.symbolposkytuje přímý přístup kEncodedSymbolpro vlastní renderování nebo analýzu. BarcodeServiceje bezstavový — jedna instance může generovat čárové kódy napříč více vlákny.- Zachyťte
BarcodeErrorjako základní třídu pro zpracování všech výjimek souvisejících s čárovými kódy v jednom bloku.
Běžné problémy
| Problém | Příčina | Oprava |
|---|---|---|
SymbologyNotFoundError | Název není zaregistrován v SymbologyRegistry | Zkontrolujte pravopis; použijte kanonické názvy |
InvalidInputError | Data porušují požadavky na symboliku | Zkontrolujte znakovou sadu a požadavky na délku |
| Prázdný výstup SVG | Nebyly zakódovány žádné moduly | Ověřte, že data nejsou prázdná a jsou platná pro symboliku |