Εισαγωγή
Aspose.BarCode FOSS για Python παρέχει κλάσεις επιλογών ανά συμβολική που ελέγχουν τη συμπεριφορά κωδικοποίησης σε όλες τις επτά υποστηριζόμενες μορφές barcode. Κάθε κλάση επιλογών κληρονομεί από το EncodeOptions και προσθέτει ιδιότητες συγκεκριμένες για τη συμβολική της — Code 128 λειτουργίες κωδικοποίησης, Code 39 επιλογή ASCII, QR επίπεδα διόρθωσης σφαλμάτων, και EAN/UPC διαχείριση ψηφίου ελέγχου.
Αυτό το άρθρο καλύπτει κάθε κλάση επιλογών, τις ιδιότητές της και λειτουργικά παραδείγματα κώδικα. Οι κλάσεις είναι διαθέσιμες από το ανώτερο πακέτο aspose_barcode_foss.
Κύρια Χαρακτηριστικά
Λειτουργίες Κωδικοποίησης Code 128
Code128Options ελέγχει ποια σύνολα χαρακτήρων Code 128 χρησιμοποιεί ο κωδικοποιητής. Η ιδιότητα encode_mode αποδέχεται μια τιμή enum Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC ή CODE_BC. Η επιλογή AUTO επιλέγει αυτόματα την πιο συμπαγή κωδικοποίηση. Το CODE_C είναι βελτιστοποιημένο για δεδομένα μόνο με ψηφία (ζεύγη ψηφίων κωδικοποιημένα ως μοναδικά σημεία κώδικα).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
bc = barcode.code128(
"1234567890",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()
Code 128 υποστηρίζει επίσης τις ιδιότητες gs1_enabled και eci_assignment_number που κληρονομούνται από το EncodeOptions για GS1 και μεταδεδομένα ECI.
Code 39 Κωδικοποίηση
Code39Options ελέγχει αν ο κωδικοποιητής χρησιμοποιεί το βασικό σύνολο 43 χαρακτήρων ή την επέκταση Full ASCII. Ορίστε full_ascii=True για να ενεργοποιήσετε τη λειτουργία Full ASCII, η οποία κωδικοποιεί ολόκληρη την περιοχή 128 χαρακτήρων ASCII χρησιμοποιώντας ζεύγη αλλαγής. Η προαιρετική ιδιότητα add_check_digit προσθέτει ένα ψηφίο ελέγχου modulo-43.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options
bc = barcode.code39(
"Hello",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()
QR Code Διαμόρφωση
QrOptions προσφέρει το πιο πλούσιο σύνολο ρυθμίσεων μεταξύ των υποστηριζόμενων συμβολισμών:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: QR έκδοση (1–40), ελέγχει το μέγεθος του συμβόλουmask: πρότυπο μάσκας (0–7) για χειροκίνητη επιλογή
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
bc = barcode.qr(
"https://example.com/product/12345",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.Q,
encoding_mode=QrEncodeMode.BYTE,
),
)
png_bytes = bc.to_png()
EAN και UPC Ψηφία Ελέγχου
Ean13Options, Ean8Options, UpcaOptions και UpceOptions έχουν καθένα μια ιδιότητα allow_check_digit_input. Από προεπιλογή, η βιβλιοθήκη υπολογίζει το ψηφίο ελέγχου αυτόματα από τα δεδομένα. Ορίστε allow_check_digit_input=True εάν τα δεδομένα σας περιλαμβάνουν ήδη το ψηφίο ελέγχου.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options
# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()
# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)
Επιλογές Απόδοσης
RenderOptions ισχύει για όλους τους συμβολισμούς και ελέγχει την οπτική έξοδο. Μεταβιβάστε το στο to_svg() ή το to_png():
| Ιδιότητα | Τύπος | Περιγραφή |
|---|---|---|
scale | float | Ομοιόμορφος πολλαπλασιαστής κλίμακας |
dpi | int | Ανάλυση για εξαγωγή PNG |
module_width | float | Πλάτος μιας μονάδας barcode |
module_height | float | Ύψος μιας μονάδας barcode |
quiet_zone | float | Διάστημα λευκού χώρου γύρω από το barcode |
foreground_color | str | Δεκαεξαδικό χρώμα για τις ράβδους (π.χ., "#000000") |
background_color | str | Δεκαεξαδικό χρώμα για το φόντο |
transparent_background | bool | Διαφανές φόντο για PNG |
show_text | bool | Εμφάνιση κειμένου που διαβάζεται από άνθρωπο κάτω από το barcode |
font_family | str | Γραμματοσειρά για κείμενο που διαβάζεται από άνθρωπο |
font_size | float | Μέγεθος γραμματοσειράς για κείμενο που διαβάζεται από άνθρωπο |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
scale=3.0,
dpi=300,
foreground_color="#1a1a1a",
background_color="#ffffff",
show_text=True,
font_family="Courier New",
))
Διαχείριση Σφαλμάτων
Όλη η επικύρωση των επιλογών κωδικοποίησης γίνεται τη στιγμή της ανάλυσης. Εάν δοθούν μη έγκυρα δεδομένα ή ασύμβατες επιλογές, η βιβλιοθήκη εγείρει μια εξειδικευμένη εξαίρεση πριν ξεκινήσει οποιαδήποτε κωδικοποίηση:
InvalidInputError— τα δεδομένα περιέχουν χαρακτήρες που δεν υποστηρίζονται από τον συμβολισμόEncodingError— η κωδικοποίηση αποτυγχάνει (π.χ., τα δεδομένα υπερβαίνουν τη χωρητικότητα)SymbologyNotFoundError— μη αναγνωρισμένο όνομα συμβολισμού περάστηκε στοgenerate()UnsupportedCapabilityError— το ζητούμενο χαρακτηριστικό δεν είναι διαθέσιμο για αυτόν τον συμβολισμό
Όλες οι κλάσεις εξαιρέσεων κληρονομούν από το BarcodeError.
Γρήγορη εκκίνηση
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Δημιουργήστε γραμμικούς κώδικες με διαφορετικές επιλογές κωδικοποίησης και αποθηκεύστε τους:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
Code128Options, Code128EncodeMode,
QrOptions, QrErrorCorrectionLevel,
RenderOptions,
)
# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
"9876543210",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
f.write(c128.to_svg())
# QR with high error correction
qr = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(qr.to_png(options=RenderOptions(scale=4.0)))
# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
f.write(ean.to_svg(options=RenderOptions(
foreground_color="#003366",
show_text=True,
)))
Υποστηριζόμενες Μορφές
| Symbology | Τύπος | Κλάση Επιλογών | Κύριες Ιδιότητες |
|---|---|---|---|
| Code 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
Μορφές εξόδου:
| Μορφή | Επέκταση | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Ανοιχτού Κώδικα & Άδεια
Aspose.BarCode FOSS για Python είναι αδειοδοτημένο MIT. Ο κώδικας είναι διαθέσιμος στο GitHub; χτίστε από τον κώδικα. Καμία εγγενής εξάρτηση, χωρίς τηλεμετρία, χωρίς περιορισμούς χρήσης.