Εισαγωγή

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, .KANJI
  • version: 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():

ΙδιότηταΤύποςΠεριγραφή
scalefloatΟμοιόμορφος πολλαπλασιαστής κλίμακας
dpiintΑνάλυση για εξαγωγή PNG
module_widthfloatΠλάτος μιας μονάδας barcode
module_heightfloatΎψος μιας μονάδας barcode
quiet_zonefloatΔιάστημα λευκού χώρου γύρω από το barcode
foreground_colorstrΔεκαεξαδικό χρώμα για τις ράβδους (π.χ., "#000000")
background_colorstrΔεκαεξαδικό χρώμα για το φόντο
transparent_backgroundboolΔιαφανές φόντο για PNG
show_textboolΕμφάνιση κειμένου που διαβάζεται από άνθρωπο κάτω από το barcode
font_familystrΓραμματοσειρά για κείμενο που διαβάζεται από άνθρωπο
font_sizefloatΜέγεθος γραμματοσειράς για κείμενο που διαβάζεται από άνθρωπο
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 1281DCode128Optionsencode_mode
Code 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR Code2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

Μορφές εξόδου:

ΜορφήΕπέκτασηExport
SVG.svg
PNG.png

Ανοιχτού Κώδικα & Άδεια

Aspose.BarCode FOSS για Python είναι αδειοδοτημένο MIT. Ο κώδικας είναι διαθέσιμος στο GitHub; χτίστε από τον κώδικα. Καμία εγγενής εξάρτηση, χωρίς τηλεμετρία, χωρίς περιορισμούς χρήσης.


Ξεκινώντας

Σχετικοί Πόροι