Fehlerbehebung Aspose.BarCode FOSS for Python

Fehlerbehebung Aspose.BarCode FOSS for Python

Dieser Leitfaden behandelt die häufigsten Fehler und Probleme beim Erzeugen von Barcodes mit Aspose.BarCode FOSS für Python. Jeder Abschnitt beschreibt den Fehler, seine Ursache und wie man ihn behebt.

Häufige Fehler

InvalidInputError

InvalidInputError wird ausgelöst, wenn die an den Encoder übergebenen Daten nicht dem Zeichensatz oder den Längenanforderungen der Symbolik entsprechen.

****Typische Ursachen::

  • Alphabetische Zeichen an eine rein numerische Symbolik übergeben (EAN-13, EAN-8, UPC-A, UPC-E)
  • Bereitstellung einer Zeichenkette, deren Länge nicht den festen Längenanforderungen der Symbolik entspricht (z.B. erfordert EAN-13 genau 12 oder 13 Ziffern)
  • Einbeziehen von Zeichen, die nicht im unterstützten Zeichensatz der Symbolik liegen (z.B. unterstützt der Basismodus von Code 39 nur Großbuchstaben, Ziffern und einige Sonderzeichen)

Korrektur: Validieren Sie Ihre Eingabedaten, bevor Sie aufrufen BarcodeService.generate(). Überprüfen Sie das Symbolprofil capabilities and known_limitations Eigenschaften auf Zeichensatz- und Längenbeschränkungen.

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 wird ausgelöst, wenn der Encoder nach bestandener Eingabevalidierung einen internen Fehler feststellt. Dies ist seltener als InvalidInputError.

****Typische Ursachen::

  • Daten, die die anfängliche Validierung bestehen, aber während der Segmentkodierung fehlschlagen (z.B. QR Code-Daten, die die Kapazität für das gewählte Fehlerkorrektur-Level überschreiten)
  • Konfliktierende Kodierungsoptionen (z.B. Anforderung von Code128EncodeMode.CODE_A mit Daten, die Kleinbuchstaben enthalten)

Korrektur: Überprüfen Sie die an übergebenen Encode-Optionen generate(). Für Code 128 verwenden Sie Code128EncodeMode.AUTO um den Encoder den optimalen Subset auswählen zu lassen. Für QR Code versuchen Sie einen niedrigeren QrErrorCorrectionLevel oder die Datenlänge reduzieren.

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 wird ausgelöst, wenn der an BarcodeService.generate() übergebene Symbolname nicht im SymbologyRegistry registriert ist.

****Typische Ursachen::

  • Falsch geschriebener Symbolname (z.B. "code_128" statt "code128")
  • Verwendung einer Symbolik, die von der Bibliothek nicht unterstützt wird (die Bibliothek unterstützt nur Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A und UPC-E)

Korrektur: Verwenden Sie einen der sieben unterstützten Symbolkennungen: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Namen sind nicht groß-/kleinschreibungssensitiv, müssen jedoch den registrierten Kennungen entsprechen.

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 wird ausgelöst, wenn der Renderer keine Ausgabe aus einem kodierten Symbol erzeugen kann.

****Typische Ursachen::

  • Ungültige RenderOptions-Werte (z.B. negative scale oder module_width)
  • Versuch, PdfRenderer zu verwenden (PDF-Rendering löst in der aktuellen Version NotImplementedError aus)

Korrektur: Verwenden Sie SvgRenderer or PngRenderer statt PdfRenderer. Überprüfen Sie, dass RenderOptions Eigenschaften haben gültige positive Werte.

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

UnsupportedCapabilityError wird ausgelöst, wenn eine Symbolik die angeforderte Fähigkeit nicht unterstützt (z.B. GS1-Modus für eine Symbolik, die GS1-Unterstützung fehlt). UnsupportedFeatureError wird ausgelöst für Funktionen, die in der Bibliothek nicht implementiert sind.

Beheben: Überprüfen Sie das Symbologieprofil capabilities Eigenschaft, um zu bestätigen, welche Funktionen verfügbar sind. Vermeiden Sie die Anforderung des GS1-Modus für Symbologien, die ihn nicht unterstützen.

Umgebungsprobleme

Python Version

Aspose.BarCode FOSS erfordert Python 3.12 oder neuer. Wenn Sie SyntaxError oder Importfehler sehen, überprüfen Sie Ihre Python-Version:

python --version

Installationsprobleme

Erstellen Sie das Paket aus dem Quellcode.

Die Bibliothek ist reines Python ohne native Abhängigkeiten. Wenn die Installation erfolgreich ist, aber Importe fehlschlagen, prüfen Sie, ob Sie das Paket nicht mit einer lokalen Datei namens aspose_barcode_foss.py überschreiben.

Importfehler

Der korrekte Import lautet:

import aspose_barcode_foss

oder importieren Sie bestimmte Klassen:

from aspose_barcode_foss import BarcodeService, RenderOptions

Häufig gestellte Fragen

Warum zeigt mein EAN-13-Barcode eine andere Nummer an, als ich eingegeben habe?

EAN-13 berechnet automatisch eine Prüfziffer. Wenn Sie 12 Ziffern übergeben, wird die 13. Ziffer angehängt. Wenn Sie 13 Ziffern übergeben, wird die letzte Ziffer als Prüfziffer validiert. Verwenden Sie die Ean13Options allow_check_digit_input-Eigenschaft, um dieses Verhalten zu steuern.

Warum wirft die PDF-Ausgabe NotImplementedError?

PdfRenderer.render() und Barcode.to_pdf() sind noch nicht implementiert. Verwenden Sie stattdessen Barcode.to_svg() oder Barcode.to_png(), oder rendern Sie direkt mit SvgRenderer oder PngRenderer.

Wie kann ich debuggen, welche Symbolnamen verfügbar sind?

Verwenden Sie SymbologyRegistry.get_definition(), um zu prüfen, ob eine Symbolik registriert ist. Wenn es SymbologyNotFoundError auslöst, ist die Symbolik nicht verfügbar. Die sieben unterstützten Symboliken sind: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A und UPC-E.

Siehe auch

 Deutsch