Lavorare con le Opzioni di Codifica

Lavorare con le Opzioni di Codifica

Lavorare con le Opzioni di Codifica

Ogni simbologia di codice a barre in Aspose.BarCode FOSS per Python dispone di una classe di opzioni dedicata che controlla il comportamento della codifica. Tutte le classi di opzioni ereditano da EncodeOptions, che fornisce le proprietà gs1_enabled e eci_assignment_number condivise tra le simbologie.


Code128Options

Code128Options controlla quali set di caratteri Code 128 l’encoder seleziona. La proprietà encode_mode accetta un valore enum Code128EncodeMode.

ModeDescrizione
AUTOSeleziona automaticamente la codifica più compatta
CODE_AMaiuscole, cifre e caratteri di controllo
CODE_BMaiuscole, minuscole e cifre
CODE_CCoppie di cifre — ottimizzate per dati solo numerici
CODE_ABCambia tra Code A e Code B
CODE_ACCambia tra Code A e Code C
CODE_BCCambia tra Code B e Code C
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode

# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))

# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))

# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))

Code39Options

Code39Options controlla se l’encoder utilizza il set di caratteri base da 43 o l’estensione Full ASCII.

ProprietàTipoDefaultDescrizione
full_asciiboolNoneAbilita la modalità Full ASCII (intervallo di 128 caratteri tramite coppie di shift)
add_check_digitboolNoneAggiungi una cifra di controllo modulo-43
from aspose_barcode_foss import Code39Options

# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")

# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
    "Hello, World!",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)

QrOptions

QrOptions ha la superficie di configurazione più ampia tra tutte le simbologie.

ProprietàTipoValues
error_correction_levelQrErrorCorrectionLevelL (7%), M (15%), Q (25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (controlla le dimensioni del simbolo)
maskint0–7 (selezione manuale del modello di maschera)
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

# High error correction with byte encoding
bc = barcode.qr(
    "https://example.com",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)

# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
    "0123456789",
    encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)

# Explicit version and mask
bc_v5 = barcode.qr(
    "TEST",
    encode=QrOptions(version=5, mask=3),
)

Ean13Options

Ean13Options controlla la gestione della cifra di controllo per i codici a barre EAN-13.

ProprietàTipoDefaultDescrizione
allow_check_digit_inputboolNoneAccetta un input a 13 cifre con cifra di controllo pre-calcolata
from aspose_barcode_foss import Ean13Options

# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")

# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

Ean8Options

Ean8Options funziona identicamente a Ean13Options ma per i codici a barre EAN a 8 cifre. Fornire 7 cifre di payload (la libreria calcola l'8ª), oppure impostare allow_check_digit_input=True per un input a 8 cifre.

from aspose_barcode_foss import Ean8Options

bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))

UpcaOptions e UpceOptions

UpcaOptions e UpceOptions seguono lo stesso modello allow_check_digit_input delle opzioni EAN. UpceOptions ha anche una proprietà number_system.

from aspose_barcode_foss import UpcaOptions, UpceOptions

# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")

# UPC-E with pre-computed check digit
bc_e = barcode.upce(
    "01234565",
    encode=UpceOptions(allow_check_digit_input=True),
)

EncodeOptions Proprietà di base

Tutte le classi di opzioni ereditano queste proprietà da EncodeOptions:

ProprietàTipoDescrizione
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Suggerimenti e migliori pratiche

  • Utilizza Code128EncodeMode.AUTO a meno che tu non abbia una ragione specifica per limitare i set di caratteri — genera il codice a barre più corto per qualsiasi input.
  • Imposta QrErrorCorrectionLevel.H per i codici QR che saranno stampati su superfici soggette a danni.
  • Consenti alla libreria di calcolare le cifre di controllo per impostazione predefinita — imposta allow_check_digit_input=True solo quando ricevi dati prevalidati da un altro sistema.
  • Utilizza QrEncodeMode.NUMERIC per dati QR composti solo da cifre per ridurre al minimo le dimensioni del simbolo.

Problemi comuni

ProblemaCausaCorrezione
InvalidInputError su Code 39L’input contiene lettere minuscoleImposta full_ascii=True in Code39Options
QR code troppo grandeVersione impostata troppo bassa per la lunghezza dei datiRimuovi version esplicito o aumentalo
Cifra di controllo errata su EAN-13Input a 13 cifre senza allow_check_digit_input=TrueFornisci 12 cifre (auto) o imposta l’opzione su True
SymbologyNotFoundErrorNome della simbologia errato in generate()Usa uno di: code128, code39, ean13, ean8, qr, upca, upce

Vedi anche

 Italiano