Generació de còdes de barres

Generació de còdes de barres

Generació de còdes de barres

La línia de generació de còdes de barres en Aspose.BarCode FOSS per Python segueix una arquitectura de tres etapes: parse → encode → render.L’API d’alt nivell (generate() i per-simboliològicament ajudants) orquestra aquestes etapes a través de la BarcodeService.


API de generació d’alt nivell

La manera més senzilla de generar un codi de barres és a través de les funcions auxiliars per-simbolisme:

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

Cada auxiliar retorna un Barcode Objecte. to_svg() per a sortida SVG o to_png() per a la sortida PNG.

El genèric generate() la funció accepta una cadena de noms simbòlics:

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

Noms de simbologia vàlids: "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService coordina les tres etapes del pipeline. SymbologyRegistry i un 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")

El generate() mètode:

  1. Mira el SymbologyDefinition del registre.
  2. L’anomenen el InputParser.parse() validar i normalitzar la entrada.
  3. L’anomenen el SymbologyEncoder.encode() per produir un EncodedSymbol
  4. Retorna a Barcode envoltar el símbol i el seu perfil.

SymbologyRegistry

SymbologyRegistry botigues SymbologyDefinition objectes encodats per noms canònics i aliases:

MethodDescription
get_definition(name)Obtenir una definició completa de la simbologia
get_parser(name)Agafa el… InputParser per a una simbologia
get_encoder(name)Agafa el… SymbologyEncoder per a una simbologia
get_profile(name)Agafa el… SymbologyProfile amb paràmetres predeterminats
get_text_policy(name)Agafa el… TextLayoutPolicy per a la reproducció de text
register(definition)Registreu un nou SymbologyDefinition

EncoderRegistry és un alias compatible amb l’esquena per a: SymbologyRegistry.


SymbologyDefinition

A. El dia de la mort: SymbologyDefinition agrupa tots els components necessaris per donar suport a una simbologia:

PropertyTypeDescription
namestrIdentificador de simbologia canònica
parserInputParserValida i normalitza les dades d’entrada
encoderSymbologyEncoderCodifica dades en una matriu de mòduls.
profileSymbologyProfileDefaults, capacitats i política de text
aliasestuple[str, ...]Noms alternatius per a la recerca

EncodedSymbol

El EncodedSymbol retornat per un codificador conté:

  • matrix a ModuleMatrix amb la xarxa de mòdul lògic del codi de barres.
  • metadata a SymbolMetadata amb el nom de la simbologia, text d’exposició i detalls d"encriptació.
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 proporciona un get(x, y) mètode que retorna el valor del mòdul en una posició determinada.


NormalizedPayload

El NormalizedPayload és la representació intermèdia entre l’anàlisi i el codificació:

PropertyDescription
symbologyNom de simbologia canònica
dataDades d’entrada validades (str o de la seva bytes)
input_kindCom es va classificar l’entrada
code128_encode_modeMòdi de codi 128 resolt (si és aplicable)
code39_encode_modeModo de codi 39 resolt (si és aplicable)
qr_error_correction_levelCorrecció d’error QR resolt (si és aplicable)
qr_versionVersió QR resolt (si és aplicable)
qr_encoding_modeMètode de codificació QR resolt (si és aplicable)

OptionsResolver

OptionsResolver fusiona les opcions de renderizació proporcionades per l’usuari amb els paràmetres predeterminats de simbologia:

MethodDescription
resolve(profile, options)Produir un ResolvedRenderOptions fusionant les opcions d’usuari amb els paràmetres predeterminats del perfil.
merge_options(earlier, later)Fusió 2 RenderOptions (valors posteriors anulen)
coerce_options(options)Normalitzar les opcions brutes en: RenderOptions

Consells i millors pràctiques

  • Utilitzar ajudants per-simbol·li (code128(), qr(), etc.) en comptes de generate() per a la seguretat de tipus asseguren que s’utilitza la classe d’opcions correcta.
  • El Barcode.symbol La propietat dóna accés directe al centre de la ciutat. EncodedSymbol per a renderi o anàlisi personalitzats.
  • BarcodeService és sense estat una instància pot generar codis de barres en múltiples fils.
  • Catch BarcodeError com a classe base per tractar totes les excepcions relacionades amb els codis de barres en un sol bloc.

Problemàtiques comuns

IssueCauseCorrecció
SymbologyNotFoundErrorNom no registrat en: SymbologyRegistryComprova l’ortografia; utilitza noms canònics.
InvalidInputErrorLes dades infringeixen els requisits de simbologia.Comprovar els requisits de conjunt i longitud dels caràcters
Exportació SVG buidaNo hi ha mòduls codificats.Verificar que les dades no són buides i són vàlides per a la simbologia.

See Also

 Català