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_Aavec 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
RenderOptionsinvalides (p.ex.scalenégatif oumodule_width) - Tentative d’utilisation de
PdfRenderer(le rendu PDF provoqueNotImplementedErrordans 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 --versionProblè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_fossou importez des classes spécifiques :
from aspose_barcode_foss import BarcodeService, RenderOptionsQuestions 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.