Depanare Aspose.BarCode FOSS for Python

Depanare Aspose.BarCode FOSS for Python

Acest ghid acoperă cele mai comune erori și probleme la generarea codurilor de bare cu Aspose.BarCode FOSS pentru Python. Fiecare secțiune descrie eroarea, cauza acesteia și cum să o rezolvi.

Erori comune

InvalidInputError

InvalidInputError este generat când datele transmise codificatorului nu respectă setul de caractere sau cerințele de lungime ale simbolului.

****Cauze tipice::

  • Transmiterea de caractere alfabetice către o simbolistică doar numerică (EAN-13, EAN-8, UPC-A, UPC-E)
  • Furnizarea unui șir a cărui lungime nu corespunde cerinței de lungime fixă a simbolului (de ex. EAN-13 necesită exact 12 sau 13 cifre)
  • Incluzând caractere în afara setului de simboluri suportat (de exemplu Code 39 modul de bază acceptă doar litere majuscule, cifre și câteva caractere speciale)

Remediați: Validați datele de intrare înainte de a apela BarcodeService.generate(). Verificați profilul de simbolistică al capabilities and known_limitations proprietăților pentru setul de caractere și restricțiile de lungime.

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 este generat când codificatorul întâlnește o eroare internă după ce validarea intrării trece. Acesta este mai puțin frecvent decât InvalidInputError.

****Cauze tipice::

  • Date care trec validarea inițială, dar eșuează în timpul codificării segmentului (de exemplu date QR Code care depășesc capacitatea pentru nivelul de corecție a erorilor ales)
  • Opțiuni de codare conflictuale (de exemplu solicitarea Code128EncodeMode.CODE_A cu date care conțin caractere minuscule)

Remediați: Revizuiți opțiunile de codare transmise către generate(). Pentru Code 128, utilizați Code128EncodeMode.AUTO pentru a permite codificatorului să selecteze subansamblul optim. Pentru QR Code, încercați o valoare mai mică QrErrorCorrectionLevel sau reduceți lungimea datelor.

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 este aruncată când numele de simbolistică transmis către BarcodeService.generate() nu este înregistrat în SymbologyRegistry.

****Cauze tipice::

  • Nume de simbolistică scris greșit (de ex. "code_128" în loc de "code128")
  • Folosirea unei simbolistici care nu este suportată de bibliotecă (biblioteca suportă numai Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A și UPC-E)

Remediaţi: Utilizaţi unul dintre cele şapte identificatoare de simbolistică acceptate: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Numele nu sunt sensibile la majuscule/minuscule, dar trebuie să corespundă identificatorilor înregistraţi.

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 este aruncată când rendererul nu reușește să producă ieșire dintr-un simbol codificat.

****Cauze tipice::

  • Valori RenderOptions invalide (de ex. scale negativ sau module_width)
  • Încercarea de a folosi PdfRenderer (redarea PDF generează NotImplementedError în versiunea curentă)

Remediaţi: Utilizaţi SvgRenderer or PngRenderer în loc de PdfRenderer. Verificaţi că RenderOptions proprietățile au valori pozitive valide.

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 și UnsupportedFeatureError

UnsupportedCapabilityError este generat când o simbolistică nu suportă o capacitate solicitată (de ex. modul GS1 pentru o simbolistică care nu are suport pentru GS1). UnsupportedFeatureError este generat pentru funcționalități neimplementate în bibliotecă.

Remediere: Verificați profilul de simbolistică al capabilities proprietate pentru a confirma ce funcționalități sunt disponibile. Evitați solicitarea modului GS1 pentru simboluri care nu îl suportă.

Probleme de mediu

Versiune Python

Aspose.BarCode FOSS necesită Python 3.12 sau o versiune ulterioară. Dacă vedeţi SyntaxError sau erori la import, verificaţi versiunea Python:

python --version

Probleme de instalare

Construiţi pachetul din sursă.

Biblioteca este pur Python fără dependenţe native. Dacă instalarea reuşeşte, dar importurile eșuează, verificaţi că nu există un fişier local numit aspose_barcode_foss.py care să umbrească pachetul.

Erori de import

Importul corect este:

import aspose_barcode_foss

sau importaţi clase specifice:

from aspose_barcode_foss import BarcodeService, RenderOptions

Întrebări frecvente

De ce codul de bare EAN-13 afișează un număr diferit față de cel introdus?

EAN-13 calculează automat o cifră de control. Dacă furnizați 12 cifre, a 13-a cifră este adăugată. Dacă furnizați 13 cifre, ultima cifră este validată ca cifră de control. Utilizați proprietatea Ean13Options allow_check_digit_input pentru a controla acest comportament.

De ce produce ieșirea PDF NotImplementedError?

PdfRenderer.render() și Barcode.to_pdf() nu sunt încă implementate. Folosiți Barcode.to_svg() sau Barcode.to_png() în schimb, sau redați direct cu SvgRenderer sau PngRenderer.

Cum pot depana ce nume de simboluri sunt disponibile?

Utilizați SymbologyRegistry.get_definition() pentru a verifica dacă o simbolistică este înregistrată. Dacă ridică SymbologyNotFoundError, simbolistica nu este disponibilă. Cele șapte simbolistici suportate sunt: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A și UPC-E.

Vezi și:

 Română