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, .KANJI
  • version: versiunea QR (1–40), controlând dimensiunea simbolului
  • mask: 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():

ProprietateTipDescriere:
scalefloatMultiplicator de scară uniformă
dpiintRezoluție pentru ieșire PNG
module_widthfloatLățimea unui modul de cod de bare
module_heightfloatÎnălțimea unui modul de cod de bare
quiet_zonefloatUmplere cu spațiu alb în jurul codului de bare
foreground_colorstrCuloare hex pentru bare (de exemplu, "#000000")
background_colorstrCuloare hex pentru fundal
transparent_backgroundboolFundal transparent pentru PNG
show_textboolAfișează textul lizibil sub codul de bare
font_familystrFont pentru textul lizibil
font_sizefloatDimensiunea 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 simbol
  • EncodingError — codarea eșuează (de exemplu, datele depășesc capacitatea)
  • SymbologyNotFoundError — nume de simbolistică nerecunoscut transmis către generate()
  • 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

SymbologyTipClasa OptionsProprietăți cheie
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

Formate de ieșire:

FormatExtensieExport
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.


Începeți

Resurse conexe