समस्या निवारण Aspose.BarCode FOSS for Python
यह गाइड Aspose.BarCode FOSS Python के लिए बारकोड उत्पन्न करते समय सबसे सामान्य त्रुटियों और समस्याओं को कवर करता है। प्रत्येक अनुभाग त्रुटि, उसके कारण, और इसे कैसे ठीक किया जाए, का वर्णन करता है।
सामान्य त्रुटियाँ
InvalidInputError
InvalidInputError तब उठाया जाता है जब एन्कोडर को पास किया गया डेटा सिम्बोलॉजी के कैरेक्टर सेट या लंबाई आवश्यकताओं के अनुरूप नहीं होता।
****आम कारण::
- अंकीय-केवल सिम्बोलॉजी को वर्णात्मक अक्षर पास करना (EAN-13, EAN-8, UPC-A, UPC-E)
- ऐसी स्ट्रिंग प्रदान करना जिसकी लंबाई सिम्बोलॉजी की निश्चित-लंबाई आवश्यकता से मेल नहीं खाती (उदा. EAN-13 को ठीक 12 या 13 अंकों की आवश्यकता होती है)
- सिंबोलॉजी के समर्थित सेट के बाहर के अक्षरों को शामिल करना (उदाहरण के लिए Code 39 बेस मोड केवल बड़े अक्षर, अंक, और कुछ विशेष वर्णों का समर्थन करता है)
सुधारें: कॉल करने से पहले अपने इनपुट डेटा को मान्य करें BarcodeService.generate(). symbology प्रोफ़ाइल के capabilities and known_limitations character set और length प्रतिबंधों के लिए properties.
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 तब उठाया जाता है जब इनपुट वैधता पास होने के बाद एन्कोडर को आंतरिक विफलता का सामना करना पड़ता है। यह InvalidInputError की तुलना में कम सामान्य है।
सामान्य कारण:
- डेटा जो प्रारंभिक वैधता पास कर लेता है लेकिन सेगमेंट एन्कोडिंग के दौरान विफल हो जाता है (उदाहरण के लिए QR Code डेटा जो चुने हुए एरर करेक्शन लेवल के लिए क्षमता से अधिक हो जाता है)
- विरोधाभासी एन्कोड विकल्प (उदाहरण के लिए
Code128EncodeMode.CODE_Aका अनुरोध करना जब डेटा में छोटे अक्षर हों)
सुधारें: पारित encode विकल्पों की समीक्षा करें generate(). Code 128 के लिए, उपयोग करें Code128EncodeMode.AUTO एन्कोडर को इष्टतम उपसमुच्चय चुनने देने के लिए। QR Code के लिए, एक कम QrErrorCorrectionLevel या डेटा की लंबाई घटाएँ।
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 तब उठाया जाता है जब BarcodeService.generate() को पास किया गया symbology नाम SymbologyRegistry में पंजीकृत नहीं होता है।
****सामान्य कारण::
- गलत लिखा गया symbology नाम (जैसे
"code_128"के बजाय"code128") - ऐसी symbology का उपयोग करना जो लाइब्रेरी द्वारा समर्थित नहीं है (लाइब्रेरी केवल Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A, और UPC-E का समर्थन करती है)
सुधार: सात समर्थित सिम्बोलॉजी पहचानकर्ताओं में से किसी एक का उपयोग करें: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". नाम केस-इंसेंसिटिव होते हैं लेकिन पंजीकृत पहचानकर्ताओं से मेल खाने चाहिए।
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 तब उठाया जाता है जब renderer एन्कोडेड प्रतीक से आउटपुट उत्पन्न करने में विफल हो जाता है।
****आम कारण::
- अमान्य
RenderOptionsमान (उदा. नकारात्मकscaleयाmodule_width) PdfRendererका उपयोग करने का प्रयास (PDF रेंडरिंग वर्तमान संस्करण मेंNotImplementedErrorउत्पन्न करता है)
सुधार: उपयोग करें SvgRenderer or PngRenderer के बजाय PdfRenderer. यह सत्यापित करें कि RenderOptions गुणधर्म वैध सकारात्मक मान रखते हैं।
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 और UnsupportedFeatureError
UnsupportedCapabilityError तब उठाया जाता है जब कोई सिम्बोलॉजी अनुरोधित क्षमता का समर्थन नहीं करती (उदा. GS1 मोड उन सिम्बोलॉजी के लिए जो GS1 समर्थन नहीं रखती)। UnsupportedFeatureError लाइब्रेरी में लागू न किए गए फीचर्स के लिए उठाया जाता है।
सुधारें: सिम्बोलॉजी प्रोफ़ाइल की जाँच करें capabilities उपलब्ध सुविधाओं की पुष्टि करने के लिए प्रॉपर्टी। उन सिंबोलॉजीज़ के लिए GS1 मोड का अनुरोध करने से बचें जो इसे समर्थन नहीं करतीं।
पर्यावरण समस्याएँ
Python संस्करण
Aspose.BarCode FOSS को Python 3.12 या उसके बाद का संस्करण चाहिए। यदि आपको SyntaxError या आयात विफलताएँ दिखती हैं, तो अपने Python संस्करण को सत्यापित करें:
python --versionइंस्टॉलेशन समस्याएँ
स्रोत कोड से पैकेज बनाएं।
यह लाइब्रेरी शुद्ध Python है और इसमें कोई नेटिव निर्भरताएँ नहीं हैं। यदि इंस्टॉलेशन सफल हो जाता है लेकिन आयात विफल होते हैं, तो जांचें कि आप aspose_barcode_foss.py नाम की स्थानीय फ़ाइल से पैकेज को छाया नहीं रहे हैं।
आयात त्रुटियाँ
सही आयात इस प्रकार है:
import aspose_barcode_fossया विशिष्ट क्लासेज आयात करें:
from aspose_barcode_foss import BarcodeService, RenderOptionsअक्सर पूछे जाने वाले प्रश्न
मेरे EAN-13 बारकोड में मैंने जो संख्या डाली थी, उसके मुकाबले अलग संख्या क्यों दिखा रहा है?
EAN-13 स्वचालित रूप से एक चेक डिजिट गणना करता है। यदि आप 12 अंक पास करते हैं, तो 13वां अंक जोड़ा जाता है। यदि आप 13 अंक पास करते हैं, तो अंतिम अंक को चेक डिजिट के रूप में मान्य किया जाता है। इस व्यवहार को नियंत्रित करने के लिए Ean13Options allow_check_digit_input प्रॉपर्टी का उपयोग करें।
PDF आउटपुट NotImplementedError क्यों उत्पन्न करता है?
PdfRenderer.render() और Barcode.to_pdf() अभी तक लागू नहीं किए गए हैं। इसके बजाय Barcode.to_svg() या Barcode.to_png() का उपयोग करें, या सीधे SvgRenderer या PngRenderer के साथ रेंडर करें।
मैं उपलब्ध सिम्बोलॉजी नामों को कैसे डिबग करूँ?
किसी सिम्बोलॉजी के पंजीकृत होने की जाँच करने के लिए SymbologyRegistry.get_definition() का उपयोग करें। यदि यह SymbologyNotFoundError उठाता है, तो सिम्बोलॉजी उपलब्ध नहीं है। समर्थित सात सिम्बोलॉजी हैं: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A, और UPC-E।