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_Aké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ívscalevagymodule_width) - Kísérlet a
PdfRendererhasználatára (PDF renderelésNotImplementedError-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 --versionTelepí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_fossvagy importálj konkrét osztályokat:
from aspose_barcode_foss import BarcodeService, RenderOptionsGyakran 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.