Risoluzione dei problemi Aspose.BarCode FOSS for Python
Questa guida copre gli errori e i problemi più comuni nella generazione di codici a barre con Aspose.BarCode FOSS per Python. Ogni sezione descrive l’errore, la sua causa e come risolverlo.
Errori comuni
InvalidInputError
InvalidInputError viene sollevato quando i dati passati al codificatore non rispettano il set di caratteri o i requisiti di lunghezza della simbologia.
****Cause tipiche::
- Passare caratteri alfabetici a una simbologia solo numerica (EAN-13, EAN-8, UPC-A, UPC-E)
- Fornire una stringa la cui lunghezza non corrisponde al requisito di lunghezza fissa della simbologia (ad esempio EAN-13 richiede esattamente 12 o 13 cifre)
- Inclusione di caratteri al di fuori del set supportato dalla simbologia (e.g. Code 39 base mode only supports uppercase letters, digits, and a few special characters)
Correggi: Convalida i dati di input prima di chiamare BarcodeService.generate(). Verifica il profilo di simbologia capabilities and known_limitations le proprietà per il set di caratteri e le limitazioni di lunghezza.
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 viene generato quando il codificatore incontra un errore interno dopo che la convalida dell’input è superata. Questo è meno comune di InvalidInputError.
****Cause tipiche::
- Dati che superano la validazione iniziale ma falliscono durante la codifica del segmento (e.g. QR Code dati che superano la capacità per il livello di correzione degli errori scelto)
- Opzioni di codifica in conflitto (ad es.g. richiedendo
Code128EncodeMode.CODE_Acon dati che contengono caratteri minuscoli)
Correggi: Rivedi le opzioni di codifica passate a generate(). Per Code 128, usa Code128EncodeMode.AUTO per consentire al codificatore di selezionare il sottoinsieme ottimale. Per QR Code, prova un valore più basso QrErrorCorrectionLevel oppure ridurre la lunghezza dei dati.
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 è sollevata quando il nome della simbologia passato a BarcodeService.generate() non è registrato nel SymbologyRegistry.
****Cause tipiche::
- Nome della simbologia errato (ad es.
"code_128"invece di"code128") - Utilizzare una simbologia non supportata dalla libreria (la libreria supporta solo Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A e UPC-E)
Correzione: Utilizza uno dei sette identificatori di simbologia supportati: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". I nomi non distinguono maiuscole/minuscole ma devono corrispondere agli identificatori registrati.
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 è sollevata quando il renderer non riesce a produrre output da un simbolo codificato.
****Cause tipiche::
- Valori
RenderOptionsnon validi (ad es.scalenegativo omodule_width) - Tentativo di utilizzare
PdfRenderer(il rendering PDF generaNotImplementedErrornella versione attuale)
Correzione: Utilizza SvgRenderer or PngRenderer anziché PdfRenderer. Verifica che RenderOptions Le proprietà hanno valori positivi validi.
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 e UnsupportedFeatureError
UnsupportedCapabilityError viene generato quando una simbologia non supporta una capacità richiesta (ad es. modalità GS1 per una simbologia che non dispone del supporto GS1). UnsupportedFeatureError viene generato per funzionalità non implementate nella libreria.
Correzione: Controlla il profilo della simbologia capabilities proprietà per confermare quali funzionalità sono disponibili. Evita di richiedere la modalità GS1 per le simbologie che non la supportano.
Problemi ambientali
Versione Python
Aspose.BarCode FOSS richiede Python 3.12 o successivo. Se vedi SyntaxError o errori di importazione, verifica la tua versione di Python:
python --versionProblemi di installazione
Compila il pacchetto dal codice sorgente.
La libreria è puramente Python senza dipendenze native. Se l’installazione riesce ma le importazioni falliscono, verifica di non sovrascrivere il pacchetto con un file locale chiamato aspose_barcode_foss.py.
Errori di importazione
L’import corretto è:
import aspose_barcode_fossoppure importa classi specifiche:
from aspose_barcode_foss import BarcodeService, RenderOptionsDomande frequenti
Perché il mio codice a barre EAN-13 mostra un numero diverso da quello inserito?
EAN-13 calcola automaticamente una cifra di controllo. Se fornisci 12 cifre, la 13ª cifra viene aggiunta. Se fornisci 13 cifre, l’ultima cifra viene validata come cifra di controllo. Usa la proprietà Ean13Options allow_check_digit_input per controllare questo comportamento.
Perché l’output PDF solleva NotImplementedError?
PdfRenderer.render() e Barcode.to_pdf() non sono ancora implementati. Usa Barcode.to_svg() o Barcode.to_png() al loro posto, oppure renderizza direttamente con SvgRenderer o PngRenderer.
Come faccio a fare il debug dei nomi di simbologia disponibili?
Usa SymbologyRegistry.get_definition() per verificare se una simbologia è registrata. Se genera SymbologyNotFoundError, la simbologia non è disponibile. Le sette simbologie supportate sono: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A e UPC-E.