Felsökning Aspose.BarCode FOSS for Python

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_A med 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. negativ scale eller module_width)
  • Försök att använda PdfRenderer (PDF-rendering ger NotImplementedError i 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 --version

Installationsproblem

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_foss

eller importera specifika klasser:

from aspose_barcode_foss import BarcodeService, RenderOptions

Vanliga 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.

Se även

 Svenska