Hibaelhárítás Aspose.BarCode FOSS for Python

Hibaelhárítás Aspose.BarCode FOSS for Python

Ez az útmutató lefedi a leggyakoribb hibákat és problémákat a Aspose.BarCode FOSS használatával történő vonalkód-generálás során Python esetén. Minden szakasz leírja a hibát, annak okát, és hogyan lehet javítani.

Gyakori hibák

InvalidInputError

InvalidInputError akkor keletkezik, amikor a kódolóhoz átadott adatok nem felelnek meg a szimbólum karakterkészletének vagy hosszkövetelményeinek.

****Tipikus okok::

  • Alfabetikus karakterek átadása kizárólag numerikus szimbólumnak (EAN-13, EAN-8, UPC-A, UPC-E)
  • Olyan karakterlánc megadása, amelynek hossza nem felel meg a szimbólum rögzített hosszú követelményének (például EAN-13 pontosan 12 vagy 13 számjegyet igényel)
  • Olyan karakterek bevitele, amelyek kívül esnek a szimbólum által támogatott halmazon (pl. a Code 39 alap üzemmód csak nagybetűket, számjegyeket és néhány speciális karaktert támogat).

Javítás: Ellenőrizd a bemeneti adatokat a hívás előtt BarcodeService.generate(). Ellenőrizd a szimbólumprofil capabilities and known_limitations tulajdonságait a karakterkészlet és a hosszkorlátok vonatkozásában.

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

A EncodingError akkor kerül kiváltásra, amikor a kódoló belső hibát észlel az input validálása után. Ez kevésbé gyakori, mint a InvalidInputError.

****Tipikus okok::

  • Adatok, amelyek átmennek a kezdeti validáláson, de a szegmenskódolás során hibát okoznak (pl. QR Code adatok, amelyek meghaladják a kiválasztott hibajavítási szint kapacitását).
  • Ütköző kódolási opciók (pl. Code128EncodeMode.CODE_A kérése olyan adatokkal, amelyek kisbetűket tartalmaznak).

Javítás: Vizsgáld meg a kódolási beállításokat, amelyeket átadtak a generate(). Code 128 esetén használd Code128EncodeMode.AUTO hogy a kódoló kiválassza az optimális részhalmazt. QR Code esetén próbálj alacsonyabb QrErrorCorrectionLevel vagy csökkentse az adat hosszát.

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 akkor keletkezik, amikor a BarcodeService.generate() számára átadott szimbólumnév nincs regisztrálva a SymbologyRegistry.

****Tipikus okok::

  • Elgépelés a szimbólumnévben (például "code_128" helyett "code128")
  • Nem támogatott szimbólum használata a könyvtárban (a könyvtár csak a Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A és UPC-E szimbólumokat támogatja)

Javítás: Használjon a hét támogatott szimbólum-azonosító egyiket: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". A nevek nem kis- és nagybetű érzékenyek, de meg kell egyezniük a regisztrált azonosítókkal.

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 akkor keletkezik, amikor a renderelő nem tud kimenetet előállítani egy kódolt szimbólumból.

****Tipikus okok::

  • Érvénytelen RenderOptions értékek (pl. negatív scale vagy module_width)
  • Kísérlet a PdfRenderer használatára (PDF renderelés NotImplementedError-t dob a jelenlegi verzióban)

Javítás: Használja SvgRenderer or PngRenderer helyett PdfRenderer. Ellenőrizze, hogy RenderOptions tulajdonságok érvényes pozitív értékekkel rendelkeznek.

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 és UnsupportedFeatureError

UnsupportedCapabilityError akkor fordul elő, amikor egy szimbólum nem támogatja a kért képességet (pl. GS1 mód egy olyan szimbólumnál, amelyik nem rendelkezik GS1 támogatással). UnsupportedFeatureError akkor fordul elő, ha a könyvtárban nem valósítottak meg funkciókat.

Javítás: Ellenőrizze a szimbólum profiljának capabilities tulajdonságát, hogy megerősítse, mely funkciók érhetők el. Kerülje a GS1 mód kérését olyan szimbólumoknál, amelyek ezt nem támogatják.

Környezeti problémák

Python verzió

Aspose.BarCode FOSS a Python 3.12 vagy újabb verziót igényel. Ha SyntaxError vagy importálási hibákat látsz, ellenőrizd a Python verziódat:

python --version

Telepítési problémák

Építsd a csomagot a forrásból.

A könyvtár tiszta Python, nincs natív függősége. Ha a telepítés sikeres, de az importálás sikertelen, ellenőrizd, hogy nem árnyékolod a csomagot egy aspose_barcode_foss.py nevű helyi fájllal.

Importálási hibák

A helyes import:

import aspose_barcode_foss

vagy importálj konkrét osztályokat:

from aspose_barcode_foss import BarcodeService, RenderOptions

Gyakran Ismételt Kérdések

Miért mutatja a EAN-13 vonalkód másik számot, mint amit beírtam?

EAN-13 automatikusan kiszámítja a ellenőrző számjegyet. Ha 12 számjegyet adsz meg, a 13. számjegy hozzá lesz fűzve. Ha 13 számjegyet adsz meg, az utolsó számjegy ellenőrző számjegyként lesz validálva. Használd a Ean13Options allow_check_digit_input tulajdonságot ennek a viselkedésnek a szabályozásához.

Miért dob NotImplementedError a PDF kimenet?

PdfRenderer.render() és Barcode.to_pdf() még nincs implementálva. Használd helyettük a Barcode.to_svg() vagy a Barcode.to_png() lehetőséget, vagy renderelj közvetlenül a SvgRenderer vagy a PngRenderer segítségével.

Hogyan tudom hibakereséssel megállapítani, mely szimbólumnév elérhető?

Használd a SymbologyRegistry.get_definition() -t annak ellenőrzésére, hogy egy szimbólum regisztrálva van-e. Ha SymbologyNotFoundError hibát dob, a szimbólum nem érhető el. A hét támogatott szimbólum a következők: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A és UPC-E.

Lásd még:

 Magyar