Introducere
Aspose.BarCode FOSS pentru Python oferă clase de opțiuni per-simbol care controlează comportamentul de codificare pentru toate cele șapte formate de coduri de bare suportate. Fiecare clasă de opțiuni moștenește din EncodeOptions și adaugă proprietăți specifice simbolului său — moduri de codificare Code 128, selecție ASCII Code 39, niveluri de corecție a erorilor QR, și gestionarea cifrei de control EAN/UPC.
Acest articol acoperă fiecare clasă de opțiuni, proprietățile sale și exemple de cod funcționale. Clasele sunt disponibile din pachetul de nivel superior aspose_barcode_foss.
Caracteristici cheie
Moduri de codificare Code 128
Code128Options controlează ce seturi de caractere Code 128 folosește codificatorul. Proprietatea encode_mode acceptă o valoare enum Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC sau CODE_BC. AUTO selectează automat cea mai compactă codificare. CODE_C este optimizat pentru date numai numerice (perechi de cifre codificate ca puncte de cod unice).
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 suportă, de asemenea, proprietățile gs1_enabled și eci_assignment_number moștenite de la EncodeOptions pentru GS1 și metadatele ECI.
Code 39 Codificare
Code39Options controlează dacă codorul folosește setul de caractere de bază de 43 sau extensia Full ASCII. Setează full_ascii=True pentru a activa modul Full ASCII, care codifică întreaga gamă de 128 de caractere ASCII utilizând perechi de schimbare. Proprietatea opțională add_check_digit adaugă o cifră de control 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 Configurare
QrOptions oferă cel mai bogat set de configurare dintre simbolurile suportate:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: versiunea QR (1–40), controlând dimensiunea simboluluimask: model de mască (0–7) pentru selecție manuală
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()
Cifre de control EAN și UPC
Ean13Options, Ean8Options, UpcaOptions și UpceOptions au fiecare o proprietate allow_check_digit_input. În mod implicit, biblioteca calculează cifra de control automat din date. Setează allow_check_digit_input=True dacă datele tale includ deja cifra de control.
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),
)
Opțiuni de redare
RenderOptions se aplică la toate simbolurile și controlează ieșirea vizuală. Transmite-l către to_svg() sau to_png():
| Proprietate | Tip | Descriere: |
|---|---|---|
scale | float | Multiplicator de scară uniformă |
dpi | int | Rezoluție pentru ieșire PNG |
module_width | float | Lățimea unui modul de cod de bare |
module_height | float | Înălțimea unui modul de cod de bare |
quiet_zone | float | Umplere cu spațiu alb în jurul codului de bare |
foreground_color | str | Culoare hex pentru bare (de exemplu, "#000000") |
background_color | str | Culoare hex pentru fundal |
transparent_background | bool | Fundal transparent pentru PNG |
show_text | bool | Afișează textul lizibil sub codul de bare |
font_family | str | Font pentru textul lizibil |
font_size | float | Dimensiunea fontului pentru textul lizibil |
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",
))
Gestionarea erorilor
Toată validarea opțiunilor de codare are loc în timpul parsării. Dacă se furnizează date nevalide sau opțiuni incompatibile, biblioteca ridică o excepție tipizată înainte de a începe orice codare:
InvalidInputError— datele conțin caractere neacceptate de simbolEncodingError— codarea eșuează (de exemplu, datele depășesc capacitatea)SymbologyNotFoundError— nume de simbolistică nerecunoscut transmis cătregenerate()UnsupportedCapabilityError— funcționalitatea solicitată nu este disponibilă pentru această simbolistică
Toate clasele de excepție moștenesc din BarcodeError.
Începe rapid
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Generează coduri de bare cu diferite opțiuni de codare și salvează-le:
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,
)))
Formate suportate
| Symbology | Tip | Clasa Options | Proprietăți cheie |
|---|---|---|---|
| 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 |
Formate de ieșire:
| Format | Extensie | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Open Source și Licențiere
Aspose.BarCode FOSS pentru Python este licențiat MIT. Codul sursă este disponibil pe GitHub; construiți din sursă. Fără dependențe native, fără telemetrie, fără limite de utilizare.