Dépannage Aspose.BarCode FOSS for Python

Dépannage Aspose.BarCode FOSS for Python

Ce guide couvre les erreurs et problèmes les plus courants lors de la génération de codes-barres avec Aspose.BarCode FOSS pour Python. Chaque section décrit l’erreur, sa cause et comment la corriger.

Erreurs courantes

InvalidInputError

InvalidInputError est levée lorsque les données transmises à l’encodeur ne respectent pas le jeu de caractères ou les exigences de longueur de la symbologie.

****Causes typiques ::

  • Passer des caractères alphabétiques à une symbologie réservée aux chiffres (EAN-13, EAN-8, UPC-A, UPC-E)
  • Fournir une chaîne dont la longueur ne correspond pas à l’exigence de longueur fixe de la symbologie (par ex. EAN-13 nécessite exactement 12 ou 13 chiffres)
  • Inclure des caractères en dehors de l’ensemble pris en charge par la symbologie (p.ex. le mode de base Code 39 ne prend en charge que les lettres majuscules, les chiffres et quelques caractères spéciaux)

Correction : Validez vos données d’entrée avant d’appeler BarcodeService.generate(). Vérifiez le profil de symbologie capabilities and known_limitations les propriétés concernant le jeu de caractères et les contraintes de longueur.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# EAN-13 requires exactly 12 or 13 digits
data = "590123412345"  # 12 digits — valid
barcode = service.generate("ean13", data)

EncodingError

EncodingError est levée lorsque l’encodeur rencontre une défaillance interne après que la validation des entrées a réussi. C’est moins fréquent que InvalidInputError.

Causes typiques :

  • Données qui passent la validation initiale mais échouent lors du codage du segment (p.ex. des données QR Code qui dépassent la capacité du niveau de correction d’erreur choisi)
  • Options d’encodage conflictuelles (p.ex. demander Code128EncodeMode.CODE_A avec des données contenant des caractères minuscules)

Correction : Examinez les options d’encodage transmises à generate(). Pour Code 128, utilisez Code128EncodeMode.AUTO pour permettre à l’encodeur de sélectionner le sous-ensemble optimal. Pour QR Code, essayez une valeur plus basse QrErrorCorrectionLevel ou réduisez la longueur des données.

from aspose_barcode_foss import BarcodeService, Code128Options, Code128EncodeMode

service = BarcodeService()
options = Code128Options(encode_mode=Code128EncodeMode.AUTO)
barcode = service.generate("code128", "Hello123", encode=options)

SymbologyNotFoundError

SymbologyNotFoundError est levée lorsque le nom de symbologie passé à BarcodeService.generate() n’est pas enregistré dans le SymbologyRegistry.

****Causes typiques ::

  • Nom de symbologie mal orthographié (p.ex. "code_128" au lieu de "code128")
  • Utilisation d’une symbologie qui n’est pas prise en charge par la bibliothèque (la bibliothèque ne prend en charge que Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A et UPC-E)

Correction : Utilisez l’un des sept identifiants de symbologie pris en charge : "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Les noms ne sont pas sensibles à la casse mais doivent correspondre aux identifiants enregistrés.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# Correct symbology names
barcode = service.generate("code128", "ABC-123")
barcode = service.generate("qrcode", "https://example.com")

RenderingError

RenderingError est levée lorsque le rendu échoue à produire une sortie à partir d’un symbole encodé.

****Causes typiques ::

  • Valeurs RenderOptions invalides (p.ex. scale négatif ou module_width)
  • Tentative d’utilisation de PdfRenderer (le rendu PDF provoque NotImplementedError dans la version actuelle)

Correction : Utilisez SvgRenderer or PngRenderer au lieu de PdfRenderer. Vérifiez que RenderOptions les propriétés ont des valeurs positives valides.

from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer

service = BarcodeService()
barcode = service.generate("ean13", "590123412345")

options = RenderOptions(scale=2.0, dpi=300)
result = barcode.render(SvgRenderer(), options)

UnsupportedCapabilityError et UnsupportedFeatureError

UnsupportedCapabilityError est levé lorsqu’une symbologie ne prend pas en charge une capacité demandée (p.ex. mode GS1 pour une symbologie qui ne possède pas de support GS1). UnsupportedFeatureError est levé pour des fonctionnalités non implémentées dans la bibliothèque.

Correction : Vérifiez le profil de symbologie capabilities propriété pour confirmer quelles fonctionnalités sont disponibles. Évitez de demander le mode GS1 pour les symbologies qui ne le supportent pas.

Problèmes d’environnement

Python Version

Aspose.BarCode FOSS nécessite Python 3.12 ou version ultérieure. Si vous voyez SyntaxError ou des échecs d’importation, vérifiez votre version Python :

python --version

Problèmes d’installation

Construisez le paquet à partir du code source.

La bibliothèque est pure Python sans dépendances natives. Si l’installation réussit mais que les importations échouent, vérifiez que vous ne masquez pas le paquet avec un fichier local nommé aspose_barcode_foss.py.

Erreurs d’importation

L’import correct est :

import aspose_barcode_foss

ou importez des classes spécifiques :

from aspose_barcode_foss import BarcodeService, RenderOptions

Questions fréquemment posées

Pourquoi mon code-barres EAN-13 affiche-t-il un numéro différent de celui que j’ai saisi?

EAN-13 calcule automatiquement un chiffre de contrôle. Si vous fournissez 12 chiffres, le 13e chiffre est ajouté. Si vous fournissez 13 chiffres, le dernier chiffre est validé comme chiffre de contrôle. Utilisez la propriété Ean13Options allow_check_digit_input pour contrôler ce comportement.

Pourquoi la sortie PDF lève-t-elle NotImplementedError?

PdfRenderer.render() et Barcode.to_pdf() ne sont pas encore implémentés. Utilisez Barcode.to_svg() ou Barcode.to_png() à la place, ou rendez avec SvgRenderer ou PngRenderer directement.

Comment déboguer quels noms de symbologie sont disponibles?

Utilisez SymbologyRegistry.get_definition() pour vérifier si une symbologie est enregistrée. Si elle lève SymbologyNotFoundError, la symbologie n’est pas disponible. Les sept symbologies prises en charge sont: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A et UPC-E.

Voir aussi

 Français