Introduzione

Aspose.BarCode FOSS per Python fornisce classi di opzioni per simbologia che controllano il comportamento di codifica su tutti i sette formati di codice a barre supportati. Ogni classe di opzione eredita da EncodeOptions e aggiunge proprietà specifiche per la sua simbologia — modalità di codifica Code 128, selezione ASCII Code 39, livelli di correzione d’errore QR, e gestione della cifra di controllo EAN/UPC.

Questo post copre ogni classe di opzione, le sue proprietà e esempi di codice funzionanti. Le classi sono disponibili dal pacchetto di livello superiore aspose_barcode_foss.


Caratteristiche principali

Code 128 Modalità di codifica

Code128Options controlla quali set di caratteri Code 128 l’encoder utilizza. La proprietà encode_mode accetta un valore enum Code128EncodeMode: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC o CODE_BC. AUTO seleziona automaticamente la codifica più compatta. CODE_C è ottimizzato per dati solo numerici (coppie di cifre codificate come singoli punti di codice).

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 supporta inoltre le proprietà gs1_enabled e eci_assignment_number ereditate da EncodeOptions per GS1 e i metadati ECI.

Code 39 Codifica

Code39Options controlla se il codificatore utilizza il set di caratteri base 43 o l’estensione Full ASCII. Imposta full_ascii=True per abilitare la modalità Full ASCII, che codifica l’intera gamma ASCII a 128 caratteri utilizzando coppie di shift. La proprietà opzionale add_check_digit aggiunge una cifra di controllo 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 Configurazione

QrOptions offre il set di configurazione più ricco tra le simbologie supportate:

  • error_correction_level: QrErrorCorrectionLevel.L (7%), .M (15%), .Q (25%), .H (30%)
  • encoding_mode: QrEncodeMode.AUTO, .NUMERIC, .ALPHANUMERIC, .BYTE, .KANJI
  • version: QR versione (1–40), che controlla le dimensioni del simbolo
  • mask: modello di maschera (0–7) per selezione manuale
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 di controllo EAN e UPC

Ean13Options, Ean8Options, UpcaOptions e UpceOptions hanno ciascuno una proprietà allow_check_digit_input. Per impostazione predefinita, la libreria calcola automaticamente la cifra di controllo dai dati. Imposta allow_check_digit_input=True se i tuoi dati includono già la cifra di controllo.

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),
)

Opzioni di rendering

RenderOptions si applica a tutte le simbologie e controlla l’output visivo. Passalo a to_svg() o to_png():

ProprietàTipoDescrizione
scalefloatMoltiplicatore di scala uniforme
dpiintRisoluzione per l’output PNG
module_widthfloatLarghezza di un modulo del codice a barre
module_heightfloatAltezza di un modulo del codice a barre
quiet_zonefloatSpaziatura bianca intorno al codice a barre
foreground_colorstrColore esadecimale per le barre (ad es., "#000000")
background_colorstrColore esadecimale per lo sfondo
transparent_backgroundboolSfondo trasparente per PNG
show_textboolMostra il testo leggibile sotto il codice a barre
font_familystrFont per il testo leggibile
font_sizefloatDimensione del carattere per testo leggibile
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",
))

Gestione degli errori

Tutta la convalida delle opzioni di codifica avviene al momento del parsing. Se vengono forniti dati non validi o opzioni incompatibili, la libreria solleva un’eccezione tipizzata prima di iniziare qualsiasi codifica:

  • InvalidInputError — i dati contengono caratteri non supportati dalla simbologia
  • EncodingError — la codifica fallisce (ad es., i dati superano la capacità)
  • SymbologyNotFoundError — nome di simbologia non riconosciuto passato a generate()
  • UnsupportedCapabilityError — funzionalità richiesta non disponibile per questa simbologia

Tutte le classi di eccezione ereditano da BarcodeError.


Guida rapida

git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .

Genera codici a barre con diverse opzioni di codifica e salvali:

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,
    )))

Formati supportati

SymbologyTipoClasse OpzioniProprietà chiave
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

Formati di output:

FormatoEstensioneExport
SVG.svg
PNG.png

Open Source e Licenze

Aspose.BarCode FOSS per Python è con licenza MIT. Il codice sorgente è disponibile su GitHub; compila dal sorgente. Nessuna dipendenza nativa, nessuna telemetria, nessun limite di utilizzo.


Guida introduttiva

Risorse correlate