Scelta di una simbologia di codice a barre

Scelta di una simbologia di codice a barre

Scegliere una simbologia di codice a barre

Aspose.BarCode FOSS per Python supporta sette simbologie. Ognuna è adatta a diversi tipi di dati, ambienti di scansione e standard di settore. Questa guida copre le caratteristiche di ciascuna simbologia e quando usarla.


Panoramica delle simbologie

SymbologyTipoSet di caratteriCapacità datiCifra di controllo
Code 1281DASCII completo (128 caratteri)Lunghezza variabileAutomatico (mod-103)
Code 391DA–Z, 0–9 e 7 caratteri speciali (base); ASCII completo (esteso)Lunghezza variabileOptional
EAN-131DSolo numerico (0–9)12 cifre dati + 1 cifra di controlloAutomatic
EAN-81DSolo numerico (0–9)7 cifre dati + 1 cifra di controlloAutomatic
QR Code2DNumerico, alfanumerico, byte e KanjiFino a 7,089 numerico / 4,296 alfanumericoAutomatico (Reed-Solomon)
UPC-A1DSolo numerico (0–9)11 cifre dati + 1 cifra di controlloAutomatic
UPC-E1DSolo numerico (0–9)6 cifre dati (compressi UPC-A)Automatic

Code 128

Code 128 codifica l’intero set di caratteri ASCII con alta densità. Utilizza tre set di caratteri (A, B, C) e passa automaticamente da uno all’altro in modalità AUTO.

Ideale per: etichette di inventario, etichette di spedizione, dati alfanumerici di uso generale.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code128Options, Code128EncodeMode

service = BarcodeService()

# Auto mode — library selects optimal character sets
barcode = service.generate("code128", "INV-2026-00451")

# Force Code C for all-numeric data (higher density)
barcode = service.generate(
    "code128", "123456789012",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = barcode.to_svg()

Code 39

Code 39 supporta lettere maiuscole, cifre e 7 caratteri speciali in modalità base. Attiva full_ascii=True per codificare l’intera gamma ASCII. È possibile aggiungere una cifra di controllo opzionale tramite add_check_digit.

Ideale per: etichette industriali, identificatori governativi/militari (LOGMARS) e ambienti in cui la semplicità è più importante della densità.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Code39Options

service = BarcodeService()

# Base mode — uppercase + digits + special chars
barcode = service.generate("code39", "PART-A1234")

# Full ASCII mode with check digit
barcode = service.generate(
    "code39", "Part-a1234",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = barcode.to_svg()

EAN-13

EAN-13 è il codice a barre standard per i prodotti al dettaglio al di fuori del Nord America. Codifica esattamente 12 cifre di dati; la 13ª cifra è una cifra di controllo calcolata automaticamente. Usa Ean13Options per controllare il comportamento di inserimento della cifra di controllo.

Ideale per: identificazione di prodotti al dettaglio, articoli di commercio internazionale (GTIN-13).

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import Ean13Options

service = BarcodeService()

# 12 data digits — check digit computed
barcode = service.generate("ean13", "590123412345")

# With rendering options for human-readable text
from aspose_barcode_foss import RenderOptions
svg = barcode.to_svg(RenderOptions(show_text=True, scale=2.0))

EAN-8

EAN-8 è la versione compatta di EAN-13, utilizzata su piccoli imballaggi al dettaglio dove lo spazio è limitato. Codifica 7 cifre di dati più 1 cifra di controllo.

Ideale per: piccoli prodotti al dettaglio, articoli con spazio etichetta limitato.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()

QR Code

QR Code è una simbologia a matrice 2D che memorizza grandi quantità di dati in una piccola area. Supporta quattro modalità di codifica tramite QrEncodeMode: NUMERIC, ALPHANUMERIC, BYTE e KANJI. La correzione degli errori è configurabile tramite QrErrorCorrectionLevel (L, M, Q, H).

Ideale per: URL, applicazioni mobili, materiali di marketing e qualsiasi caso d’uso che richieda un’elevata capacità di dati o caratteri non ASCII.

from aspose_barcode_foss import BarcodeService
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

service = BarcodeService()

# Default settings
barcode = service.generate("qrcode", "https://example.com")

# High error correction for printed labels
barcode = service.generate(
    "qrcode", "https://example.com/product/12345",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.H,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)
png = barcode.to_png()

UPC-A

UPC-A è il codice a barre standard per i prodotti al dettaglio in Nord America. Codifica 11 cifre di dati più 1 cifra di controllo. UPC-A è un sottoinsieme di EAN-13 con uno zero iniziale.

Ideale per: identificazione dei prodotti al dettaglio nordamericani (GTIN-12).

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upca", "01234567890")
svg = barcode.to_svg()

UPC-E

UPC-E è una forma compressa di UPC-A per piccoli articoli al dettaglio. Codifica 6 cifre di dati sopprimendo gli zero dalla rappresentazione completa di UPC-A.

Ideale per: piccoli articoli al dettaglio, coupon e etichette dove lo spazio è limitato.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()

Guida decisionale

Utilizza questa tabella per selezionare la simbologia corretta per la tua applicazione:

Caso d’usoSimboli consigliatiReason
Inventario del magazzinoCode 128ASCII completo, alta densità, lunghezza variabile
Etichette militari/LOGMARSCode 39Ampia adozione nei sistemi governativi
Retail internazionaleEAN-13GTIN-13 standard
Confezione al dettaglio piccolaEAN-8 o UPC-EDimensioni fisiche compatte
Retail nordamericanoUPC-AGTIN-12 standard
URL e link mobiliQR CodeScansione 2D ad alta capacità
Marketing e stampaQR CodeScansionabile con le fotocamere dei telefoni
Numeri di serie interamente numericiCode 128 (Code C)Massima densità per dati numerici

Suggerimenti e migliori pratiche

  • Usa Code 128 come predefinito per etichette di uso generale — offre il miglior rapporto densità-compatibilità tra le simbologie 1D
  • Per i prodotti al dettaglio, utilizza la simbologia richiesta dal tuo mercato: EAN-13 per l’internazionale, UPC-A per il Nord America
  • Imposta QrErrorCorrectionLevel.H per i codici QR che verranno stampati su etichette esposte a usura o danni parziali
  • Fai sempre sì che la libreria calcoli le cifre di controllo automaticamente invece di fornirle manualmente
  • Usa show_text=True in RenderOptions per etichette leggibili dall’uomo, così gli operatori possono verificare visualmente i dati scansionati

Problemi comuni

ProblemaCausaCorrezione
InvalidInputError su EAN-13Caratteri non numerici nei datiEAN-13 accetta solo cifre 0–9
InvalidInputError su Code 39Lettere minuscole in modalità baseImposta Code39Options(full_ascii=True)
QR code troppo grandeVersione troppo bassa per la lunghezza dei datiConsenti alla libreria di selezionare automaticamente la versione, oppure aumenta QrOptions.version
UPC-E InvalidInputErrorI dati non corrispondono al modello di soppressione degli zeriVerifica il formato a 6 cifre UPC-E o utilizza UPC-A al suo posto

FAQ

Posso usare Code 128 per dati interamente numerici?

Sì. Code 128 Code C mode (Code128EncodeMode.CODE_C) è ottimizzata per dati interamente numerici, codificando coppie di cifre in un singolo carattere simbolo per la massima densità.

Qual è la differenza tra EAN-13 e UPC-A?

UPC-A è un sottoinsieme a 12 cifre di EAN-13. Un codice UPC-A può essere rappresentato come un EAN-13 con uno zero iniziale. Sono funzionalmente compatibili nei sistemi di scansione al dettaglio.

Quale simbologia supporta più dati?

QR Code supporta fino a 7.089 caratteri numerici o 4.296 caratteri alfanumerici. Tutte le simbologie 1D in questa libreria supportano dati a lunghezza variabile, ma QR Code ha la capacità più alta.

Posso mescolare le simbologie in un’unica applicazione?

Sì. Crea un’istanza di BarcodeService e chiama generate() con nomi di simbologia diversi per ogni codice a barre. Il servizio risolve ogni simbologia tramite il SymbologyRegistry.


Riepilogo di API Reference

Classe / MetodoDescrizione
BarcodeService.generate(symbology, data, encode, render)Genera un codice a barre per qualsiasi simbologia registrata
Code128OptionsOpzioni di codifica per Code 128 (modalità di codifica, GS1, ECI)
Code128EncodeModeEnum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC
Code39OptionsOpzioni di codifica per Code 39 (ASCII completo, cifra di controllo)
Code39EncodeModeEnum: BASE, FULL_ASCII
Ean13OptionsOpzioni di codifica per EAN-13 (inserimento della cifra di controllo)
Ean8OptionsOpzioni di codifica per EAN-8 (inserimento della cifra di controllo)
QrOptionsOpzioni di codifica per QR Code (correzione d’errore, versione, maschera, modalità)
QrEncodeModeEnum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
QrErrorCorrectionLevelEnum: L, M, Q, H
UpcaOptionsOpzioni di codifica per UPC-A
UpceOptionsOpzioni di codifica per UPC-E
SymbologyRegistryRisolve i nomi della simbologia e fornisce definizioni

Vedi anche

 Italiano