Ř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_As 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éscalenebomodule_width) - Pokus o použití
PdfRenderer(PDF rendering vyvoláNotImplementedErrorv 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 --versionProblé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_fossnebo 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.