Barcode génération

Barcode génération

Barcode génération

Le pipeline de génération de code bar dans Aspose.BarCode FOSS pour Python suit une architecture à trois étapes: Parse → encode → rendu.Le niveau de l’AFP (generate() et par-symbologie assistants) orchestrez ces étapes à travers BarcodeService.


API de génération élevée

La façon la plus simple de générer un code bar est par les fonctions d’aide per-symbologie :

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

Chaque assistant revient à un Barcode Objet : appels to_svg() pour la production de SVG ou to_png() pour la production de PNG.

Le générique generate() La fonction accepte une string de nom symbologique :

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

Nom de symbologie : "code128", "code39", "ean13", "ean8", "qr", "upca", "upce".


BarcodeService

BarcodeService Il coordonne les trois étapes du pipeline.Il a une SymbologyRegistry et 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")

Le generate() Méthode :

  1. Regardez le SymbologyDefinition du registre
  2. appelle le InputParser.parse() Valider et normaliser les entrées
  3. appelle le SymbologyEncoder.encode() Pour produire un EncodedSymbol
  4. Retour à A Barcode - la mise en place du symbole et de son profil

SymbologyRegistry

SymbologyRegistry Les boutiques SymbologyDefinition Les objets clés par des noms canoniques et des alliages :

MethodDescription
get_definition(name)Retrise une définition symbologique complète
get_parser(name)Obtenez le InputParser Pour une symbologie
get_encoder(name)Obtenez le SymbologyEncoder Pour une symbologie
get_profile(name)Obtenez le SymbologyProfile avec défauts
get_text_policy(name)Obtenez le TextLayoutPolicy Pour le texte de rendu
register(definition)Enregistrer un nouveau SymbologyDefinition

EncoderRegistry est un alias compatible pour SymbologyRegistry.


SymbologyDefinition

A SymbologyDefinition Tous les composants sont mis en place pour soutenir une symbologie :

PropertyTypeDescription
namestrIdentification symbologique canonique
parserInputParserValidation et normalisation des données d’entrée
encoderSymbologyEncoderEncoder les données dans une matrice module
profileSymbologyProfileDéfauts, capacités et politique de texte
aliasestuple[str, ...]Les noms alternatifs pour le lookup

EncodedSymbol

Le EncodedSymbol Remboursé par un encoder contient :

  • matrix - A ModuleMatrix avec le réseau logique du code bar
  • metadata - A SymbolMetadata avec le nom symbologique, le texte d’affichage et les détails de codage
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 Il fournit A get(x, y) méthode qui retourne la valeur du module à une position donnée.


NormalizedPayload

Le NormalizedPayload Il s’agit de la représentation intermédiaire entre partage et codage :

PropertyDescription
symbologyNom de symbologie canonique
dataLes données de l’entrée (str ou bytes)
input_kindComment l’entrée a été classée
code128_encode_modeModification de code 128 (si nécessaire)
code39_encode_modeModification du code 39 (si nécessaire)
qr_error_correction_levelCorrection d’erreur QR (si nécessaire)
qr_versionVersion QR résolue (si nécessaire)
qr_encoding_modeModes de codage QR résolu (si nécessaire)

OptionsResolver

OptionsResolver Mélangez les options de rendement fournies par l’utilisateur avec des défauts symbologiques :

MethodDescription
resolve(profile, options)Produit A ResolvedRenderOptions en combinant les options d’utilisateur avec des défauts de profil
merge_options(earlier, later)Mélanger deux RenderOptions (Les valeurs ultérieures sont supérieuses)
coerce_options(options)Normaliser les options de base dans le RenderOptions

Conseils et meilleures pratiques

  • Utiliser des systèmes de soins (code128(), qr(),et ainsi de suite) au lieu de generate() pour la sécurité de type - ils veillent à ce que la classe d’options correcte est utilisée.
  • Le Barcode.symbol La propriété donne accès direct à la EncodedSymbol pour la rendue ou l’analyse.
  • BarcodeService est sans état - une seule instance peut générer des codes bars sur plusieurs filets.
  • Catch BarcodeError comme une classe de base pour gérer toutes les exceptions liées au code bar dans un seul bloc.

Les problèmes communs

IssueCauseFixé
SymbologyNotFoundErrorNom non inscrit dans SymbologyRegistryVérifier le débit; utiliser des noms canoniques
InvalidInputErrorLes données violent les exigences symbologiquesVérifier les caractères et la longueur des exigences
Votre produit SVG videPas de modules codésVérification des données n’est pas vide et valide pour la symbologie

See Also

 Français