Barcodegeneratie

Barcodegeneratie

Barcodegeneratie

De barcode-generatie-pipeline in Aspose.BarCode FOSS voor Python volgt een drie-stappen-architectuur: ontleden → coderen → renderen. De high-level API (generate() en per-symbology helpers) orkestreert deze fasen via BarcodeService.


Hoog-niveau Generatie API

De eenvoudigste manier om een barcode te genereren is via de per-symbologie-helperfuncties:

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

Elke helper retourneert een Barcode object. Roep to_svg() aan voor SVG-uitvoer of to_png() voor PNG-uitvoer.

De generieke generate() functie accepteert een symbologie-naam string:

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

Geldige symbologie-namen: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService coördineert de drie pijplijnfasen. Het bevat een SymbologyRegistry en een 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")

De generate() methode:

  1. Zoekt de SymbologyDefinition op in het register
  2. Roept de InputParser.parse() aan om invoer te valideren en te normaliseren
  3. Roept de SymbologyEncoder.encode() aan om een EncodedSymbol te produceren
  4. Retourneert een Barcode die het symbool en zijn profiel omsluit

SymbologyRegistry

SymbologyRegistry slaat SymbologyDefinition objecten op die worden geïdentificeerd aan de hand van canonieke namen en aliassen:

MethodeBeschrijving
get_definition(name)Haal een volledige symbologie-definitie op
get_parser(name)Haalt de InputParser op voor een symbologie
get_encoder(name)Haal de SymbologyEncoder op voor een symbologie
get_profile(name)Haalt de SymbologyProfile op met standaardwaarden
get_text_policy(name)Haal de TextLayoutPolicy op voor tekstweergave
register(definition)Registreer een nieuwe SymbologyDefinition

EncoderRegistry is een achterwaarts-compatibel alias voor SymbologyRegistry.


SymbologyDefinition

Een SymbologyDefinition bundelt alle componenten die nodig zijn om één symbologie te ondersteunen:

EigenschapTypeBeschrijving
namestrCanonieke symboolidentificatie
parserInputParserValideert en normaliseert invoergegevens
encoderSymbologyEncoderEncodeert gegevens in een modulematrix
profileSymbologyProfileStandaardwaarden, mogelijkheden en tekstbeleid
aliasestuple[str, ...]Alternatieve namen voor opzoeken

EncodedSymbol

De EncodedSymbol die door een encoder wordt geretourneerd, bevat:

  • matrix — een ModuleMatrix met het logische module-rooster van de barcode
  • metadata — een SymbolMetadata met de symbologienaam, weergavetekst en coderingsdetails
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 biedt een get(x, y) methode die de modulewaarde teruggeeft op een gegeven positie.


NormalizedPayload

De NormalizedPayload is de tussenliggende representatie tussen parsing en codering:

EigenschapBeschrijving
symbologyCanonieke symboolnaam
dataGevalideerde invoergegevens (str of bytes)
input_kindHoe de invoer werd geclassificeerd
code128_encode_modeOpgeloste Code 128 modus (indien van toepassing)
code39_encode_modeOpgeloste Code 39 modus (indien van toepassing)
qr_error_correction_levelOpgeloste QR foutcorrectie (indien van toepassing)
qr_versionOpgeloste QR versie (indien van toepassing)
qr_encoding_modeOpgeloste QR coderingsmodus (indien van toepassing)

OptionsResolver

OptionsResolver voegt door de gebruiker opgegeven renderopties samen met de symbologie-standaardinstellingen:

MethodeBeschrijving
resolve(profile, options)Genereer een ResolvedRenderOptions door gebruikersopties te combineren met profielstandaardinstellingen
merge_options(earlier, later)Voeg twee RenderOptions samen (latere waarden overschrijven)
coerce_options(options)Normaliseer ruwe opties naar RenderOptions

Tips en beste praktijken

  • Gebruik per-symboolhelpers (code128(), qr(), enz.) in plaats van generate() voor typeveiligheid — ze zorgen ervoor dat de juiste optiesklasse wordt gebruikt.
  • De Barcode.symbol eigenschap geeft directe toegang tot de EncodedSymbol voor aangepaste weergave of analyse.
  • BarcodeService is stateless — één instantie kan barcodes genereren over meerdere threads.
  • Vang BarcodeError op als een basisklasse om alle barcode-gerelateerde uitzonderingen in één blok af te handelen.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
SymbologyNotFoundErrorNaam niet geregistreerd in SymbologyRegistryControleer spelling; gebruik canonieke namen
InvalidInputErrorData schendt symbologie-eisenControleer de tekenset- en lengtvereisten
Lege SVG-uitvoerGeen modules gecodeerdVerifieer dat de data niet leeg is en geldig voor de symboliek

Zie ook

 Nederlands