Barkod Generation

Barkod Generation

Barkodsgenereringspåket i Aspose.BarCode FOSS för Python följer en tre-steg arkitektur: Parse → kod → render.Den högsta nivåens API (generate() och per-symbologi assistenter) orkestrar dessa steg genom BarcodeService.


Högnivå generations API

Det enklaste sättet att generera en barkod är genom per-symbologi hjälparfunktionerna:

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")

Varje hjälpar returnerar en Barcode Objekt - Kall to_svg() för SVG-utgång eller to_png() för PNG utgång.

Den generiska generate() Funktionen accepterar en symbolisk namnsträng:

bc = barcode.generate("code128", "DATA")
svg = bc.to_svg()

Valid symboliska namn: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService samordnar de tre rörledningsfaserna. det håller en SymbologyRegistry och en 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")

Den generate() Metod är:

  1. Se upp på den SymbologyDefinition Från registret
  2. Kalla den InputParser.parse() att validera och normalisera input
  3. Kalla den SymbologyEncoder.encode() att producera en EncodedSymbol
  4. Återvänder A Barcode för att täcka symbolen och dess profil

SymbologyRegistry

SymbologyRegistry butiker SymbologyDefinition objekt som är nycklar till kanoniska namn och alia:

MethodBeskrivning
get_definition(name)Reträva en fullständig symbolisk definition
get_parser(name)Få den InputParser För en symbologi
get_encoder(name)Få den SymbologyEncoder För en symbologi
get_profile(name)Få den SymbologyProfile med defalterade
get_text_policy(name)Få den TextLayoutPolicy för text rendering
register(definition)Registrera en ny SymbologyDefinition

EncoderRegistry är en backward-kompatibel alias för SymbologyRegistry.


SymbologyDefinition

A och SymbologyDefinition Alla komponenter som behövs för att stödja en symbol:

PropertyTyp avBeskrivning
namestrKanoniska symboler identifierar
parserInputParserValiderar och normaliserar inputdata
encoderSymbologyEncoderKoda data i en modulmatrix
profileSymbologyProfileBrister, kapacitet och textpolitik
aliasestuple[str, ...]Alternativa namn för lookup

EncodedSymbol

Den EncodedSymbol returnerad av en kodare innehåller:

  • matrix - a ModuleMatrix med barkoden logiska modulnätet
  • metadata - a SymbolMetadata med symboliska namn, text visas och kodning detaljer
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 ger A get(x, y) Metoden som returnerar modulvärdet i en given position.


NormalizedPayload

Den NormalizedPayload är den mellanliggande representationen mellan parsing och kodning:

PropertyBeskrivning
symbologyNamn på kanoniska symboler
dataUppgifter om inmatning (str eller bytes)
input_kindHur inmatningen klassificerades
code128_encode_modeLösad kod 128 läge (om tillämpligt)
code39_encode_modeLösning i kod 39 läge (om tillämpligt)
qr_error_correction_levelKorrigerad QR-fel (om tillämpligt)
qr_versionLösad QR-version (om tillämpligt)
qr_encoding_modeLös QR-kodningsläge (om tillämpligt)

OptionsResolver

OptionsResolver kombinerar användar-supported render alternativ med symboliska standard:

MethodBeskrivning
resolve(profile, options)producerar A ResolvedRenderOptions genom att kombinera användaralternativ med profildefault
merge_options(earlier, later)Möt två RenderOptions (Låt senare värden överrida)
coerce_options(options)Normalisera råalternativ i RenderOptions

Tips och bästa praxis

  • Används av en per-symbolist hjälpare (code128(), qr(),… etc) i stället för att generate() för typ säkerhet – de garanterar att rätt alternativ klass används.
  • Den Barcode.symbol Fastigheten ger direkt tillgång till EncodedSymbol för anpassad rendering eller analys.
  • BarcodeService är statistiskt - en instans kan generera barkoder över flera trådar.
  • Catch BarcodeError som en basklass för att hantera alla barkodrelaterade undantag i ett enda block.

Vanliga frågor

IssueCauseFixar
SymbologyNotFoundErrorNamn som inte är registrerat i SymbologyRegistryKontrollera spelling; använda kanoniska namn
InvalidInputErrorData bryter mot symbolikkravKontrollera karaktärsinställningar och längd krav
tomt SVG utgångInga kodade modulerVerifier data är icke-vaka och giltiga för symboliken

Se även

 Svenska