Giriş Validasyonu ve Hata İşlemleri
Giriş Validasyonu ve Hata İşlemleri
Aspose.BarCode FOSS for Python validates all input data before encoding. Each symbology has a dedicated InputParser karakter setleri, uzunluk kısıtlamaları ve format kurallarını kontrol eden alt sınıf. doğrulama başarısız olduğunda kütüphane tipik istisnalar çıkarır. BarcodeError İlerleme sorunu, kodlama başarısızlıkları ve rendering sorunları arasında ayırt edebilir.
InputParser Layer ile ilgili bilgiler
Her simbol bir InputParser İletişim: Çağrı yaparken BarcodeService.generate(),Birincisi, üretici bir NormalizedPayload ya da yükseltmek InvalidInputError Bu veriler bu simbol için geçerli değilse.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
# Valid Code 128 input — passes the Code128InputParser
barcode = service.generate("code128", "VALID-DATA-001")
# Invalid EAN-13 input — too few digits
try:
barcode = service.generate("ean13", "123")
except Exception as e:
print(type(e).__name__, e)Her simbol parser farklı kuralları doğrulamaktadır:
Code128InputParser- Tüm karakterlerin kod 128 karakter setleri tarafından desteklenen ASCII aralığında olduğunu kontrol eder.Code39InputParser- Kod 39 taban veya tam ASCII alfabesi ile ilgili karakterleri doğrulamaktadır.Code39Options.full_asciiEan13InputParser- Tam olarak 12 veya 13 sayı sayısı gerektirir (13 numaralı kontrol sayısının)Ean8InputParser7 veya 8 sayı sayısı gerektirir.QrInputParser- Seçilen kişiye karşı veri doğrulamaQrEncodeMode(Sayı, alfabetik veya kanji)UpcaInputParser11 veya 12 sayı sayısı gerektirir.UpceInputParser- Doğru 6, 7 veya 8 sayısal rakam gerektirir ve geçerli bir UPC-E desenine sahiptir.
BarcodeError Hierarşisi
Her türlü istisna, BarcodeError,Python’un içindeki genişlemesini sağlayan Exception.Hierarşinin farklı spesifik seviyelerde yakalama blokları sağlar:
| Exception | Yükseldiğinde |
|---|---|
BarcodeError | Tüm kütüphane istisnaları için temel sınıflar |
InvalidInputError | Giriş verileri doğrulama başarısız (yanlış karakterler, yanlış uzunluk) |
EncodingError | Etiket: validasyon geçtikten sonra logik kayıplar |
RenderingError | Renderer SVG veya PNG çıkışında bir hata ile karşılaşır |
SymbologyNotFoundError | Simbol adı kayıtlı değildir. SymbologyRegistry |
UnsupportedCapabilityError | İsteyen bir kapasite, simbol için kullanılamaz. |
UnsupportedFeatureError | Bir özellik tanımlanır ama uygulanmaz. |
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss.errors import (
BarcodeError,
InvalidInputError,
EncodingError,
SymbologyNotFoundError,
)
service = BarcodeService()
try:
barcode = service.generate("code128", "TEST-001")
svg = barcode.to_svg()
except InvalidInputError as e:
print(f"Input rejected: {e}")
except EncodingError as e:
print(f"Encoding failed: {e}")
except SymbologyNotFoundError as e:
print(f"Unknown symbology: {e}")
except BarcodeError as e:
print(f"Barcode error: {e}")Symbology isimleri
SymbologyNotFoundError Yükseldiğinde BarcodeService.generate() Kayıtlı olmayan bir simbol adı alınır. SymbologyRegistry Kanonik isim veya alias ile adları çözür, bu nedenle "code128", "Code128",ve "CODE128" Herkes aynı tanımla karar verir.
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss.errors import SymbologyNotFoundError
service = BarcodeService()
try:
barcode = service.generate("invalid_type", "data")
except SymbologyNotFoundError as e:
print(f"Not found: {e}")Digit Validasyon Kontrolü
EAN-13, Ean-8, UPC-A ve U PC-E sembolleri otomatik olarak kontrol sayısını hesaplar. bir kontrol sayı da dahil olmak üzere tam verileri iletiyorsanız, parser bunu hesaplanan değere karşı doğrulamaktadır. allow_check_digit_input Mülkiyet üzerinde Ean13Options ve Ean8Options Bu davranışları kontrol eder.
from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Ean13Options
service = BarcodeService()
# 12 digits — check digit computed automatically
barcode = service.generate("ean13", "590123412345")
# 13 digits — parser verifies the 13th digit matches the computed value
barcode = service.generate(
"ean13", "5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)İpuçları ve En İyi Uygulamalar
- Catch
InvalidInputErrorKullanıcıya karşı giriş formları için, veriler simboloji gereksinimlerini karşılayamayacak - Kullanım
BarcodeErrorbir yakalama olarak sadece hatalar türleri arasında ayırt etmenize gerek olmadığında - Simbololojinin adını, destekleyici yedi simbolonun karşısında (kod128, kod39, ean13, eAN8, qrcode, upca, upe) arayın önce kontrol edin.
generate()kaçınmak içinSymbologyNotFoundError - QR kodları için, set
encoding_modeaçıkça yoluylaQrOptions• Bilgiler ASCII olmayan karakterler içerirken, - Kütüphane, bunları manuel olarak sunmak yerine sayılar kontrol etmeye çalıştırır - bu yanlış anlaşmazlıklardan kaçınır.
ortak sorunlar
| Issue | Cause | Fix |
|---|---|---|
InvalidInputError EAN-13 için | 12’den az sayıda veya sayı dışı karakter içerir. | 12 veya 13 sayı sayısı ile ilgili bilgiler |
SymbologyNotFoundError | Simbolik isimler (örneğin,. "code_128" Bunun yerine "code128") | Kanonik adı kullanmadan |
EncodingError 39 kodları | Bilgiler aşağıdaki yazıları içerir full_ascii=True | Setleri Code39Options(full_ascii=True) |
UnsupportedFeatureError | Tanımlanmış ama henüz uygulanmamış bir özellik çağırmak | Check known_limitations Simbolik Profilinde |
InvalidInputError UPC-A için | 12’den fazla sayıya sahiptir. | 11 veya 12 sayı sayısı ile ilgili bilgiler |
FAQ
Bir simbol adı oluşturmadan önce geçerli olup olmadığını nasıl kontrol edebilirim?
Kullanım BarcodeService.registry erişmek için The SymbologyRegistry.Çağrı get_definition() ve Catch SymbologyNotFoundError Adı kaydedilmemişse.
EAN çubuk kodları için dijital doğrulama kontrolü devre dışı bırakabilir miyim?
Parser her zaman tam uzunluk girişini sağladığınızda kontrol rakamlarını doğrulamaktadır (13 EAN-13, 8 Ean-8 için rakamı). Doğrulama önlemek için, yalnızca veri rakalarını (12 EEN-13.7 EN-8) ve kütüphanenin kontrol sayısını hesaplamasına izin verir.
İkili verileri 1D çubuk kodu sembolojisine aktarırsam ne olur?
InvalidInputError Kod 128, kod 39, EAN ve UPC sembolleri yalnızca metin verilerini kabul eder. ikili veriler için, QR kodu kullanın QrEncodeMode.BYTE.
Kütüphane QR kodları için veri uzunluğunu doğrulamaktadır?
QrInputParser QR versiyonunun kapasitesine uygun olduğunu doğrulamaktadır. herhangi bir versiyonu belirtilmezse, kütüphane verileri barındıran en küçük versiyi seçer.
API Referans Özetleri
| Sınıf / Yöntem | Description |
|---|---|
InputParser.parse(data, options) | Abstrak yöntem - girişleri doğrulamak ve normalleştirmek NormalizedPayload |
Code128InputParser.parse(data, options) | Kodu 128 giriş karakterini doğrulamaktadır. |
Code39InputParser.parse(data, options) | 39 baz kodu veya tam ASCII girişini doğrulamaktadır. |
Ean13InputParser.parse(data, options) | EAN-13 sayım ve kontrol sayımı doğrulamaktadır. |
Ean8InputParser.parse(data, options) | EAN-8 sayısı ve kontrol sayısını doğrulamaktadır. |
QrInputParser.parse(data, options) | QR verilerini seçilen kodlama moduna karşı doğrulamaktadır. |
UpcaInputParser.parse(data, options) | UPC-A sayısı ile ilgili bilgiler |
UpceInputParser.parse(data, options) | UPC-E sayısı ve desenini doğrulamaktadır |
BarcodeError | Barkod Kütüphanesi için Temel Bir Üstün |
InvalidInputError | Yasadışı giriş verileri için toplanan |
EncodingError | Kodu başarısız olduğunda yükseltildi |
RenderingError | Rendering başarısız olduğunda büyüdü |
SymbologyNotFoundError | Kayıtlı olmayan simbol isimleri için yükseltilmiştir. |
UnsupportedCapabilityError | Mevcut olmayan kapasiteye sahip olmak için |
UnsupportedFeatureError | Uygulamayan özellikler için geliştirilmiştir. |