Risoluzione dei problemi Aspose.BarCode FOSS for Python

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_A con 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 RenderOptions non validi (ad es. scale negativo o module_width)
  • Tentativo di utilizzare PdfRenderer (il rendering PDF genera NotImplementedError nella 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 --version

Problemi 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_foss

oppure importa classi specifiche:

from aspose_barcode_foss import BarcodeService, RenderOptions

Domande 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.

Vedi anche

 Italiano