Alegerea unei simbologii de coduri de bare
Alegerea unei simbologii de coduri de bare
Aspose.BarCode FOSS pentru Python suportă șapte simbologii. Fiecare este potrivită pentru diferite tipuri de date, medii de scanare și standarde industriale. Acest ghid acoperă caracteristicile fiecărei simbologii și când să o utilizați.
Prezentare generală a simbologiei
| Symbology | Tip | Set de caractere | Capacitate de date | Cifră de control |
|---|---|---|---|---|
| Code 128 | 1D | ASCII complet (128 de caractere) | Lungime variabilă | Automat (mod-103) |
| Code 39 | 1D | A–Z, 0–9 și 7 caractere speciale (bază); ASCII complet (extins) | Lungime variabilă | Optional |
| EAN-13 | 1D | Număr (doar 0–9) | 12 cifre de date + 1 cifră de control | Automatic |
| EAN-8 | 1D | Număr (doar 0–9) | 7 cifre de date + 1 cifră de control | Automatic |
| QR Code | 2D | Numeric, alfanumeric, byte și Kanji | Până la 7,089 numeric / 4,296 alfanumeric | Automat (Reed-Solomon) |
| UPC-A | 1D | Număr (doar 0–9) | 11 cifre de date + 1 cifră de control | Automatic |
| UPC-E | 1D | Numai numeric (0–9) | 6 cifre de date (comprimate UPC-A) | Automatic |
Code 128
Code 128 codifică setul complet de caractere ASCII cu densitate ridicată. Folosește trei seturi de caractere (A, B, C) și comută automat între ele în modul AUTO.
Ideal pentru: etichete de inventar, etichete de expediere, date alfanumerice de uz general.
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 acceptă litere mari, cifre și 7 caractere speciale în modul de bază. Activează full_ascii=True pentru a codifica întregul interval ASCII. Un cifru de control opțional poate fi adăugat prin add_check_digit.
Cel mai potrivit pentru: etichete industriale, identificatori guvernamentali/militari (LOGMARS) și medii în care simplitatea este mai importantă decât densitatea.
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 este codul de bare standard pentru produse de retail în afara Americii de Nord. Codifică exact 12 cifre de date; a 13-a cifră este un cifru de control calculat automat. Folosește Ean13Options pentru a controla comportamentul de introducere a cifrei de control.
Cel mai potrivit pentru: identificarea produselor de retail, articole de comerț internațional (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 este versiunea compactă a EAN-13, utilizată pe pachete mici de retail unde spațiul este limitat. Codifică 7 cifre de date plus 1 cifră de control.
Cel mai potrivit pentru: produse de retail mici, articole cu spațiu limitat pe etichetă.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()QR Code
QR Code este o simbolistică matricială 2D care stochează cantități mari de date într-o zonă mică. Suportă patru moduri de codificare prin QrEncodeMode: NUMERIC, ALPHANUMERIC, BYTE și KANJI. Corecția erorilor este configurabilă prin QrErrorCorrectionLevel (L, M, Q, H).
Cel mai potrivit pentru: URL-uri, aplicații mobile, materiale de marketing și orice caz de utilizare care necesită capacitate mare de date sau caractere 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 este codul de bare standard pentru produse de retail în America de Nord. Codifică 11 cifre de date plus 1 cifră de control. UPC-A este un subset al EAN-13 cu un zero inițial.
Cel mai potrivit pentru: identificarea produselor de retail din America de Nord (GTIN-12).
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("upca", "01234567890")
svg = barcode.to_svg()UPC-E
UPC-E este o formă comprimată a UPC-A pentru articole de retail mici. Codifică 6 cifre de date prin suprimarea zerourilor din reprezentarea completă UPC-A.
Cel mai potrivit pentru: articole mici de retail, cupoane și etichete în care spațiul este limitat.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()Ghid de decizie
Utilizați acest tabel pentru a selecta simbolistica potrivită pentru aplicația dvs.:
| Caz de utilizare | Simbolistică recomandată | Reason |
|---|---|---|
| Inventar de depozit | Code 128 | ASCII complet, densitate mare, lungime variabilă |
| Etichete militare/LOGMARS | Code 39 | Adoptare largă în sistemele guvernamentale |
| Retail internațional | EAN-13 | GTIN-13 standard |
| Ambalare mică pentru retail | EAN-8 sau UPC-E | Dimensiune fizică compactă |
| Retail nord-american | UPC-A | GTIN-12 standard |
| URL-uri și linkuri mobile | QR Code | Capacitate mare, scanare 2D |
| Marketing și tipărire | QR Code | Scanabil cu camerele telefonului |
| Numere de serie complet numerice | Code 128 (Code C) | Cea mai mare densitate pentru date numerice |
Sfaturi și cele mai bune practici
- Utilizați Code 128 ca valoare implicită pentru etichete de uz general — oferă cel mai bun raport densitate-compatibilitate dintre simbolurile 1D
- Pentru produse de retail, utilizați simbolistica cerută de piața dumneavoastră: EAN-13 pentru internațional, UPC-A pentru America de Nord
- Setați
QrErrorCorrectionLevel.Hpentru codurile QR care vor fi tipărite pe etichete expuse la uzură sau deteriorare parțială - Lăsați întotdeauna biblioteca să calculeze cifrele de control automat, în loc să le furnizați manual
- Utilizați
show_text=TrueînRenderOptionspentru etichete lizibile pentru oameni, astfel încât operatorii să poată verifica vizual datele scanate
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
InvalidInputError pe EAN-13 | Caractere non-numerice în date | EAN-13 acceptă doar cifrele 0–9 |
InvalidInputError pe Code 39 | Litere minuscule în modul de bază | Setați Code39Options(full_ascii=True) |
| QR code prea mare | Versiunea prea mică pentru lungimea datelor | Permite bibliotecii să selecteze automat versiunea, sau mărește QrOptions.version |
UPC-E InvalidInputError | Datele nu corespund tiparului de suprimare a zerourilor | Verificați formatul de 6 cifre UPC-E sau utilizați UPC-A în schimb |
FAQ
Pot folosi Code 128 pentru date complet numerice?
Da. Modul Code 128 Code C (Code128EncodeMode.CODE_C) este optimizat pentru date complet numerice, codificând perechi de cifre într-un singur caracter simbol pentru densitate maximă.
Care este diferența dintre EAN-13 și UPC-A?
UPC-A este un subset de 12 cifre al EAN-13. Un cod UPC-A poate fi reprezentat ca un EAN-13 cu un zero inițial. Ele sunt compatibile funcțional în sistemele de scanare din retail.
Care simbolistică suportă cele mai multe date?
QR Code acceptă până la 7,089 caractere numerice sau 4,296 caractere alfanumerice. Toate simbolurile 1D din această bibliotecă acceptă date cu lungime variabilă, dar QR Code are cea mai mare capacitate.
Pot să combin simboluri într-o singură aplicație?
Da. Creați o instanță BarcodeService și apelați generate() cu diferite nume de simbol pentru fiecare cod de bare. Serviciul rezolvă fiecare simbol prin SymbologyRegistry.
API Reference Rezumat
| Clasă / Metodă | Descriere: |
|---|---|
BarcodeService.generate(symbology, data, encode, render) | Generați un cod de bare pentru orice simbolistică înregistrată |
Code128Options | Opțiuni de codare pentru Code 128 (mod de codare, GS1, ECI) |
Code128EncodeMode | Enum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC |
Code39Options | Opțiuni de codare pentru Code 39 (ASCII complet, cifră de control) |
Code39EncodeMode | Enum: BASE, FULL_ASCII |
Ean13Options | Opțiuni de codare pentru EAN-13 (intrare cifră de control) |
Ean8Options | Opțiuni de codare pentru EAN-8 (intrare cifră de control) |
QrOptions | Opțiuni de codare pentru QR Code (corecție de eroare, versiune, mască, mod) |
QrEncodeMode | Enum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
QrErrorCorrectionLevel | Enum: L, M, Q, H |
UpcaOptions | Opțiuni de codare pentru UPC-A |
UpceOptions | Opțiuni de codare pentru UPC-E |
SymbologyRegistry | Rezolvă numele de simbolistică și oferă definiții |