Αντιμετώπιση προβλημάτων Aspose.BarCode FOSS for Python
Αυτός ο οδηγός καλύπτει τα πιο συνηθισμένα σφάλματα και προβλήματα κατά τη δημιουργία barcode με Aspose.BarCode FOSS για Python. Κάθε ενότητα περιγράφει το σφάλμα, την αιτία του και πώς να το διορθώσετε.
Συνηθισμένα σφάλματα
InvalidInputError
InvalidInputError προκαλείται όταν τα δεδομένα που περνιούνται στον κωδικοποιητή δεν συμμορφώνονται με το σύνολο χαρακτήρων ή τις απαιτήσεις μήκους της συμβολογίας.
****Τυπικές αιτίες::
- Περνώντας αλφαβητικούς χαρακτήρες σε συμβολογία μόνο αριθμητική (EAN-13, EAN-8, UPC-A, UPC-E)
- Παρέχοντας μια συμβολοσειρά του οποίου το μήκος δεν ταιριάζει με την απαιτούμενη σταθερή μήκος της συμβολογίας (π.χ. το EAN-13 απαιτεί ακριβώς 12 ή 13 ψηφία)
- Συμπερίληψη χαρακτήρων εκτός του υποστηριζόμενου συνόλου της συμβολικής (π.χ. η λειτουργία Code 39 μόνο σε βασική λειτουργία υποστηρίζει κεφαλαία γράμματα, ψηφία και μερικούς ειδικούς χαρακτήρες)
Διόρθωση: Επικυρώστε τα δεδομένα εισόδου πριν την κλήση BarcodeService.generate(). Ελέγξτε το προφίλ συμβολογίας capabilities and known_limitations ιδιότητες για σύνολο χαρακτήρων και περιορισμούς μήκους.
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με δεδομένα που περιέχουν πεζούς χαρακτήρες)
Διόρθωση: Ανασκοπήστε τις επιλογές κωδικοποίησης που περνάνε στο 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() δεν είναι καταχωρημένο στο SymbologyRegistry.
****Τυπικές αιτίες::
- Λανθασμένο ορθογραφικά το όνομα συμβολισμού (π.χ.
"code_128"αντί για"code128") - Χρήση συμβολισμού που δεν υποστηρίζεται από τη βιβλιοθήκη (η βιβλιοθήκη υποστηρίζει μόνο 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 προκαλείται όταν ο εικονοποιητής αποτυγχάνει να παράγει έξοδο από ένα κωδικοποιημένο σύμβολο.
****Τυπικές αιτίες::
- Μη έγκυρες τιμές
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.