Řešení problémů Aspose.BarCode FOSS for Python

Řešení problémů Aspose.BarCode FOSS for Python

Tento průvodce pokrývá nejčastější chyby a problémy při generování čárových kódů pomocí Aspose.BarCode FOSS pro Python. Každá sekce popisuje chybu, její příčinu a jak ji opravit.

Časté chyby

InvalidInputError

InvalidInputError je vyvolána, když data předaná enkodéru neodpovídají znakové sadě nebo požadavkům na délku symbologie.

****Typické příčiny::

  • Předání abecedních znaků do symbologie, která podporuje jen čísla (EAN-13, EAN-8, UPC-A, UPC-E)
  • Poskytnutí řetězce, jehož délka neodpovídá požadavku na pevnou délku symbologie (např. EAN-13 vyžaduje přesně 12 nebo 13 číslic)
  • Zahrnutí znaků mimo podporovanou sadu symboliky (např. Code 39 základní režim podporuje pouze velká písmena, číslice a několik speciálních znaků)

Opravit: Ověřte vstupní data před voláním BarcodeService.generate(). Zkontrolujte profil symboliky capabilities and known_limitations vlastnosti pro znakovou sadu a omezení délky.

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 je vyvoláno, když enkodér narazí na interní selhání po úspěšném ověření vstupu. To je méně časté než InvalidInputError.

****Typické příčiny::

  • Data, která prošla počáteční validací, ale selžou během kódování segmentu (např. QR Code data, která překračují kapacitu pro zvolenou úroveň opravy chyb)
  • Konfliktní možnosti kódování (např. požadování Code128EncodeMode.CODE_A s daty obsahujícími malá písmena)

Opravit: Zkontrolujte možnosti kódování předané do generate(). Pro Code 128 použijte Code128EncodeMode.AUTO aby enkodér vybral optimální podmnožinu. Pro QR Code vyzkoušejte nižší QrErrorCorrectionLevel nebo zkrátit délku dat.

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 je vyvolána, když název symboliky předaný BarcodeService.generate() není zaregistrován v SymbologyRegistry.

****Typické příčiny::

  • Chybně napsaný název symboliky (např. "code_128" místo "code128")
  • Použití symboliky, která není knihovnou podporována (knihovna podporuje pouze Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A a UPC-E)

Oprava: Použijte jeden ze sedmi podporovaných identifikátorů symboliky: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Názvy jsou bez ohledu na velikost písmen, ale musí odpovídat registrovaným identifikátorům.

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 je vyvolána, když renderér nezíská výstup z kódovaného symbolu.

****Typické příčiny::

  • Neplatné hodnoty RenderOptions (např. záporné scale nebo module_width)
  • Pokus o použití PdfRenderer (PDF rendering vyvolá NotImplementedError v aktuální verzi)

Oprava: Použijte SvgRenderer or PngRenderer místo PdfRenderer. Ověřte, že RenderOptions vlastnosti mají platné kladné hodnoty.

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

UnsupportedCapabilityError je vyvolán, když symbologie nepodporuje požadovanou funkci (např. režim GS1 pro symbologii, která postrádá podporu GS1). UnsupportedFeatureError je vyvolán pro funkce, které nejsou v knihovně implementovány.

Oprava: Zkontrolujte profil symboliky capabilities vlastnost k potvrzení, které funkce jsou k dispozici. Vyhněte se požadování režimu GS1 pro symboliky, které jej nepodporují.

Problémy s prostředím

Python verze

Aspose.BarCode FOSS vyžaduje Python 3.12 nebo novější. Pokud vidíte SyntaxError nebo selhání importu, ověřte verzi Python:

python --version

Problémy s instalací

Sestavte balíček ze zdrojového kódu.

Knihovna je čistý Python bez nativních závislostí. Pokud instalace proběhne úspěšně, ale importy selžou, zkontrolujte, že nezasahujete do balíčku lokálním souborem pojmenovaným aspose_barcode_foss.py.

Chyby importu

Správný import je:

import aspose_barcode_foss

nebo importujte konkrétní třídy:

from aspose_barcode_foss import BarcodeService, RenderOptions

Často kladené otázky

Proč se na mém čárovém kódu EAN-13 zobrazuje jiné číslo, než jsem zadal?

EAN-13 automaticky vypočítá kontrolní číslici. Pokud zadáte 12 číslic, přidá se 13. číslice. Pokud zadáte 13 číslic, poslední číslice se ověří jako kontrolní. K řízení tohoto chování použijte vlastnost Ean13Options allow_check_digit_input.

Proč výstup PDF vyvolává NotImplementedError?

PdfRenderer.render() a Barcode.to_pdf() zatím nejsou implementovány. Místo toho použijte Barcode.to_svg() nebo Barcode.to_png(), nebo renderujte přímo pomocí SvgRenderer nebo PngRenderer.

Jak mohu ladit, které názvy symboliky jsou k dispozici?

Použijte SymbologyRegistry.get_definition() k ověření, zda je symbolika zaregistrována. Pokud vyvolá SymbologyNotFoundError, symbolika není k dispozici. Sedm podporovaných symbolik je: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A a UPC-E.

Viz také:

 Čeština