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,.KANJIversion: QR versione (1–40), che controlla le dimensioni del simbolomask: 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à | Tipo | Descrizione |
|---|---|---|
scale | float | Moltiplicatore di scala uniforme |
dpi | int | Risoluzione per l’output PNG |
module_width | float | Larghezza di un modulo del codice a barre |
module_height | float | Altezza di un modulo del codice a barre |
quiet_zone | float | Spaziatura bianca intorno al codice a barre |
foreground_color | str | Colore esadecimale per le barre (ad es., "#000000") |
background_color | str | Colore esadecimale per lo sfondo |
transparent_background | bool | Sfondo trasparente per PNG |
show_text | bool | Mostra il testo leggibile sotto il codice a barre |
font_family | str | Font per il testo leggibile |
font_size | float | Dimensione 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 simbologiaEncodingError— la codifica fallisce (ad es., i dati superano la capacità)SymbologyNotFoundError— nome di simbologia non riconosciuto passato agenerate()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
| Symbology | Tipo | Classe Opzioni | Proprietà chiave |
|---|---|---|---|
| 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 |
Formati di output:
| Formato | Estensione | Export |
|---|---|---|
| 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.