Probleemoplossing Aspose.BarCode FOSS for Python

Probleemoplossing Aspose.BarCode FOSS for Python

Deze gids behandelt de meest voorkomende fouten en problemen bij het genereren van barcodes met Aspose.BarCode FOSS voor Python. Elke sectie beschrijft de fout, de oorzaak en hoe deze op te lossen.

Veelvoorkomende fouten

InvalidInputError

InvalidInputError wordt gegenereerd wanneer de gegevens die aan de encoder worden doorgegeven niet voldoen aan de tekenset- of lengteeisen van de symbologie.

****Typische oorzaken::

  • Alfabetische tekens doorgeven aan een uitsluitend numerieke symbologie (EAN-13, EAN-8, UPC-A, UPC-E)
  • Een tekenreeks leveren waarvan de lengte niet overeenkomt met de vaste-lengteeis van de symbologie (bijv. EAN-13 vereist precies 12 of 13 cijfers)
  • Tekens opnemen die buiten de ondersteunde set van de symbologie vallen (bijv. Code 39 basismodus ondersteunt alleen hoofdletters, cijfers en een paar speciale tekens)

Oplossen: Valideer uw invoergegevens voordat u aanroept BarcodeService.generate(). Controleer het symbologieprofiel capabilities and known_limitations eigenschappen voor tekenset en lengtebeperkingen.

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 wordt opgegooid wanneer de encoder een interne fout tegenkomt nadat de invoervalidatie is geslaagd. Dit komt minder vaak voor dan InvalidInputError.

****Typische oorzaken::

  • Gegevens die de eerste validatie doorstaan maar falen tijdens segmentcodering (bijv. QR Code gegevens die de capaciteit voor het gekozen foutcorrectieniveau overschrijden)
  • Conflicterende encodeopties (bijv. het aanvragen van Code128EncodeMode.CODE_A met gegevens die kleine letters bevatten)

Oplossen: Bekijk de encode-opties die zijn doorgegeven aan generate(). Voor Code 128, gebruik Code128EncodeMode.AUTO om de encoder de optimale subset te laten kiezen. Voor QR Code, probeer een lagere QrErrorCorrectionLevel of verkort de gegevenslengte.

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 wordt opgegooid wanneer de symbologie-naam die aan BarcodeService.generate() wordt doorgegeven niet is geregistreerd in de SymbologyRegistry.

****Typische oorzaken::

  • Verkeerd gespelde symbologie-naam (bijv. "code_128" in plaats van "code128")
  • Een symbologie gebruiken die niet door de bibliotheek wordt ondersteund (de bibliotheek ondersteunt alleen Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A en UPC-E)

Oplossing: Gebruik een van de zeven ondersteunde symbologie-identifiers: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Namen zijn niet hoofdlettergevoelig maar moeten overeenkomen met de geregistreerde identifiers.

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 wordt opgegooid wanneer de renderer geen uitvoer kan genereren vanuit een gecodeerd symbool.

****Typische oorzaken::

  • Ongeldige RenderOptions-waarden (bijv. negatieve scale of module_width)
  • Poging om PdfRenderer te gebruiken (PDF-rendering veroorzaakt NotImplementedError in de huidige versie)

Oplossing: Gebruik SvgRenderer or PngRenderer in plaats van PdfRenderer. Controleer dat RenderOptions eigenschappen hebben geldige positieve waarden.

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 en UnsupportedFeatureError

UnsupportedCapabilityError wordt opgegeven wanneer een symbologie een aangevraagde mogelijkheid niet ondersteunt (bijv. GS1-modus voor een symbologie die geen GS1-ondersteuning heeft). UnsupportedFeatureError wordt opgegeven voor functies die niet in de bibliotheek zijn geïmplementeerd.

Oplossing: Controleer het symbologieprofiel capabilities eigenschap om te bevestigen welke functies beschikbaar zijn. Vermijd het aanvragen van GS1-modus voor symbologieën die deze niet ondersteunen.

Omgevingsproblemen

Python Versie

Aspose.BarCode FOSS vereist Python 3.12 of later. Als u SyntaxError of importfouten ziet, controleer dan uw Python-versie:

python --version

Installatieproblemen

Bouw het pakket vanuit de bron.

De bibliotheek is pure Python zonder native afhankelijkheden. Als de installatie slaagt maar importen falen, controleer dan of u het pakket niet overschaduwt met een lokaal bestand genaamd aspose_barcode_foss.py.

Importfouten

De juiste import is:

import aspose_barcode_foss

of importeer specifieke klassen:

from aspose_barcode_foss import BarcodeService, RenderOptions

Veelgestelde vragen

Waarom toont mijn EAN-13 barcode een ander nummer dan ik invoerde?

EAN-13 berekent automatisch een controlecijfer. Als je 12 cijfers invoert, wordt het 13e cijfer toegevoegd. Als je 13 cijfers invoert, wordt het laatste cijfer gevalideerd als controlecijfer. Gebruik de Ean13Options allow_check_digit_input eigenschap om dit gedrag te regelen.

Waarom werpt de PDF-uitvoer NotImplementedError?

PdfRenderer.render() en Barcode.to_pdf() zijn nog niet geïmplementeerd. Gebruik Barcode.to_svg() of Barcode.to_png() in plaats daarvan, of render direct met SvgRenderer of PngRenderer.

Hoe debug ik welke symbologienamen beschikbaar zijn?

Gebruik SymbologyRegistry.get_definition() om te controleren of een symbologie is geregistreerd. Als het SymbologyNotFoundError veroorzaakt, is de symbologie niet beschikbaar. De zeven ondersteunde symbologieën zijn: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A en UPC-E.

Zie ook

 Nederlands