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
| Symbology | Tipo | Set di caratteri | Capacità dati | Cifra di controllo |
|---|---|---|---|---|
| Code 128 | 1D | ASCII completo (128 caratteri) | Lunghezza variabile | Automatico (mod-103) |
| Code 39 | 1D | A–Z, 0–9 e 7 caratteri speciali (base); ASCII completo (esteso) | Lunghezza variabile | Optional |
| EAN-13 | 1D | Solo numerico (0–9) | 12 cifre dati + 1 cifra di controllo | Automatic |
| EAN-8 | 1D | Solo numerico (0–9) | 7 cifre dati + 1 cifra di controllo | Automatic |
| QR Code | 2D | Numerico, alfanumerico, byte e Kanji | Fino a 7,089 numerico / 4,296 alfanumerico | Automatico (Reed-Solomon) |
| UPC-A | 1D | Solo numerico (0–9) | 11 cifre dati + 1 cifra di controllo | Automatic |
| UPC-E | 1D | Solo 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’uso | Simboli consigliati | Reason |
|---|---|---|
| Inventario del magazzino | Code 128 | ASCII completo, alta densità, lunghezza variabile |
| Etichette militari/LOGMARS | Code 39 | Ampia adozione nei sistemi governativi |
| Retail internazionale | EAN-13 | GTIN-13 standard |
| Confezione al dettaglio piccola | EAN-8 o UPC-E | Dimensioni fisiche compatte |
| Retail nordamericano | UPC-A | GTIN-12 standard |
| URL e link mobili | QR Code | Scansione 2D ad alta capacità |
| Marketing e stampa | QR Code | Scansionabile con le fotocamere dei telefoni |
| Numeri di serie interamente numerici | Code 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.Hper 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=TrueinRenderOptionsper etichette leggibili dall’uomo, così gli operatori possono verificare visualmente i dati scansionati
Problemi comuni
| Problema | Causa | Correzione |
|---|---|---|
InvalidInputError su EAN-13 | Caratteri non numerici nei dati | EAN-13 accetta solo cifre 0–9 |
InvalidInputError su Code 39 | Lettere minuscole in modalità base | Imposta Code39Options(full_ascii=True) |
| QR code troppo grande | Versione troppo bassa per la lunghezza dei dati | Consenti alla libreria di selezionare automaticamente la versione, oppure aumenta QrOptions.version |
UPC-E InvalidInputError | I dati non corrispondono al modello di soppressione degli zeri | Verifica 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 / Metodo | Descrizione |
|---|---|
BarcodeService.generate(symbology, data, encode, render) | Genera un codice a barre per qualsiasi simbologia registrata |
Code128Options | Opzioni di codifica per Code 128 (modalità di codifica, GS1, ECI) |
Code128EncodeMode | Enum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC |
Code39Options | Opzioni di codifica per Code 39 (ASCII completo, cifra di controllo) |
Code39EncodeMode | Enum: BASE, FULL_ASCII |
Ean13Options | Opzioni di codifica per EAN-13 (inserimento della cifra di controllo) |
Ean8Options | Opzioni di codifica per EAN-8 (inserimento della cifra di controllo) |
QrOptions | Opzioni di codifica per QR Code (correzione d’errore, versione, maschera, modalità) |
QrEncodeMode | Enum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
QrErrorCorrectionLevel | Enum: L, M, Q, H |
UpcaOptions | Opzioni di codifica per UPC-A |
UpceOptions | Opzioni di codifica per UPC-E |
SymbologyRegistry | Risolve i nomi della simbologia e fornisce definizioni |