Felsökning Aspose.BarCode FOSS for Python
Denna guide täcker de vanligaste felen och problemen när du genererar streckkoder med Aspose.BarCode FOSS för Python. Varje avsnitt beskriver felet, dess orsak och hur du åtgärdar det.
Vanliga fel
InvalidInputError
InvalidInputError uppstår när data som skickas till kodaren inte följer symbolikens teckenuppsättning eller längdkrav.
****Typiska orsaker::
- Att skicka alfabetiska tecken till en enbart numerisk symbolik (EAN-13, EAN-8, UPC-A, UPC-E)
- Att tillhandahålla en sträng vars längd inte matchar symbolikens fastställda längdkrav (t.ex. EAN-13 kräver exakt 12 eller 13 siffror)
- Inkluderar tecken som ligger utanför symbolikens stödda teckenuppsättning (t.ex. Code 39 basläge stöder endast versaler, siffror och några specialtecken)
Fixa: Validera dina indata innan du anropar BarcodeService.generate(). Kontrollera symbolprofilens capabilities and known_limitations egenskaper för teckenuppsättning och längdbegränsningar.
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 utlöses när kodaren stöter på ett internt fel efter att indatavalideringen har passerat. Detta är mindre vanligt än InvalidInputError.
****Typiska orsaker::
- Data som klarar den initiala valideringen men misslyckas under segmentkodning (t.ex. QR Code data som överskrider kapaciteten för den valda felkorrigeringsnivån)
- Motstridiga kodningsalternativ (t.ex. begära
Code128EncodeMode.CODE_Amed data som innehåller gemena tecken)
Fixa: Granska kodningsalternativen som skickas till generate(). För Code 128, använd Code128EncodeMode.AUTO för att låta kodaren välja det optimala delmängden. För QR Code, försök med en lägre QrErrorCorrectionLevel eller minska datalängden.
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 uppstår när symbologinamnet som skickas till BarcodeService.generate() inte är registrerat i SymbologyRegistry.
****Typiska orsaker::
- Felstavat symbologinamn (t.ex.
"code_128"istället för"code128") - Användning av en symbologi som inte stöds av biblioteket (biblioteket stöder endast Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A och UPC-E)
Fixa: Använd en av de sju stödda symbolidentifierarna: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". Namn är skiftlägesokänsliga men måste matcha de registrerade identifierarna.
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 uppstår när renderaren misslyckas med att producera output från en kodad symbol.
****Typiska orsaker::
- Ogiltiga
RenderOptions-värden (t.ex. negativscaleellermodule_width) - Försök att använda
PdfRenderer(PDF-rendering gerNotImplementedErrori den aktuella versionen)
Fixa: Använd SvgRenderer or PngRenderer istället för PdfRenderer. Verifiera att RenderOptions egenskaper har giltiga positiva värden.
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 och UnsupportedFeatureError
UnsupportedCapabilityError uppstår när en symbolik inte stödjer en begärd funktion (t.ex. GS1-läge för en symbolik som saknar GS1-stöd). UnsupportedFeatureError uppstår för funktioner som inte är implementerade i biblioteket.
Åtgärd: Kontrollera symbologiprofilens capabilities egenskap för att bekräfta vilka funktioner som är tillgängliga. Undvik att begära GS1 mode för symbologier som inte stöder det.
Miljöproblem
Python Version
Aspose.BarCode FOSS kräver Python 3.12 eller senare. Om du ser SyntaxError eller importfel, verifiera din Python version:
python --versionInstallationsproblem
Bygg paketet från källkoden.
Biblioteket är ren Python utan inhemska beroenden. Om installationen lyckas men import misslyckas, kontrollera att du inte skuggar paketet med en lokal fil som heter aspose_barcode_foss.py.
Importfel
Den korrekta importen är:
import aspose_barcode_fosseller importera specifika klasser:
from aspose_barcode_foss import BarcodeService, RenderOptionsVanliga frågor
Varför visar min EAN-13 streckkod ett annat nummer än jag angav?
EAN-13 beräknar automatiskt en kontrollsiffra. Om du anger 12 siffror läggs den 13:e siffran till. Om du anger 13 siffror valideras den sista siffran som kontrollsiffra. Använd egenskapen Ean13Options allow_check_digit_input för att styra detta beteende.
Varför får PDF-utdata NotImplementedError?
PdfRenderer.render() och Barcode.to_pdf() är ännu inte implementerade. Använd Barcode.to_svg() eller Barcode.to_png() istället, eller rendera med SvgRenderer eller PngRenderer direkt.
Hur felsöker jag vilka symbologinamn som är tillgängliga?
Använd SymbologyRegistry.get_definition() för att kontrollera om en symbologi är registrerad. Om den ger SymbologyNotFoundError är symbologin inte tillgänglig. De sju stödda symbologierna är: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A och UPC-E.