Een barcode-symbologie kiezen
Een barcode-symbologie kiezen
Aspose.BarCode FOSS voor Python ondersteunt zeven symbologieën. Elk is geschikt voor verschillende gegevenstypen, scanomgevingen en industriestandaarden. Deze gids behandelt de kenmerken van elke symbologie en wanneer deze te gebruiken is.
Overzicht van symbologie
| Symbology | Type | Tekenset | Gegevenscapaciteit | Controgetcijfer |
|---|---|---|---|---|
| Code 128 | 1D | Volledige ASCII (128 tekens) | Variabele lengte | Automatisch (mod-103) |
| Code 39 | 1D | A–Z, 0–9 en 7 speciale tekens (basis); volledige ASCII (uitgebreid) | Variabele lengte | Optional |
| EAN-13 | 1D | Alleen numeriek (0–9) | 12 gegevenscijfers + 1 controlecijfer | Automatic |
| EAN-8 | 1D | Alleen numeriek (0–9) | 7 gegevenscijfers + 1 controlecijfer | Automatic |
| QR Code | 2D | Numeriek, alfanumeriek, byte en Kanji | Tot 7,089 numeriek / 4,296 alfanumeriek | Automatisch (Reed-Solomon) |
| UPC-A | 1D | Alleen numeriek (0–9) | 11 datacijfers + 1 controlecijfer | Automatic |
| UPC-E | 1D | Alleen numeriek (0–9) | 6 datacijfers (gecomprimeerd UPC-A) | Automatic |
Code 128
Code 128 codeert de volledige ASCII-tekenreeks met hoge dichtheid. Het gebruikt drie tekenreeksen (A, B, C) en schakelt automatisch tussen hen in AUTO-modus.
Het beste voor: voorraadlabels, verzendlabels, algemene alfanumerieke gegevens.
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 ondersteunt hoofdletters, cijfers en 7 speciale tekens in de basismodus. Schakel full_ascii=True in om het volledige ASCII-bereik te coderen. Een optioneel controlecijfer kan worden toegevoegd via add_check_digit.
Ideaal voor: industriële etiketten, overheids-/militaire identificaties (LOGMARS) en omgevingen waar eenvoud belangrijker is dan dichtheid.
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 is de standaard barcode voor detailhandelsproducten buiten Noord-Amerika. Het codeert exact 12 gegevenscijfers; het 13e cijfer is een automatisch berekend controlecijfer. Gebruik Ean13Options om het gedrag van de invoer van het controlecijfer te regelen.
Ideaal voor: identificatie van detailhandelsproducten, internationale handelsartikelen (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 is de compacte versie van EAN-13, gebruikt op kleine retailverpakkingen waar ruimte beperkt is. Het codeert 7 gegevenscijfers plus 1 controlecijfer.
Ideaal voor: kleine retailproducten, items met beperkte labelruimte.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()QR Code
QR Code is een 2D matrixsymbologie die grote hoeveelheden data opslaat in een klein gebied. Het ondersteunt vier coderingsmodi via QrEncodeMode: NUMERIC, ALPHANUMERIC, BYTE en KANJI. Foutcorrectie is configureerbaar via QrErrorCorrectionLevel (L, M, Q, H).
Ideaal voor: URL’s, mobiele applicaties, marketingmateriaal en elke toepassing die een hoge datacapaciteit of niet-ASCII-tekens vereist.
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 is de standaard barcode voor detailhandelsproducten in Noord-America. Het codeert 11 datacijfers plus 1 controlecijfer. UPC-A is een subset van EAN-13 met een voorloopnul.
Ideaal voor: identificatie van detailhandelsproducten in Noord-America (GTIN-12).
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("upca", "01234567890")
svg = barcode.to_svg()UPC-E
UPC-E is een gecomprimeerde vorm van UPC-A voor kleine detailhandelsartikelen. Het codeert 6 datacijfers door nullen te onderdrukken in de volledige UPC-A weergave.
Het beste voor: kleine detailhandelsartikelen, coupons en etiketten waar ruimte beperkt is.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()Beslissingsgids
Gebruik deze tabel om de juiste symbologie voor uw toepassing te selecteren:
| Gebruikssituatie | Aanbevolen symbologie | Reason |
|---|---|---|
| Magazijninventaris | Code 128 | Volledige ASCII, hoge dichtheid, variabele lengte |
| Militaire/LOGMARS labels | Code 39 | Brede adoptie in overheidsystemen |
| Internationale detailhandel | EAN-13 | GTIN-13 standaard |
| Kleine detailhandelverpakking | EAN-8 of UPC-E | Compact fysieke grootte |
| Noord-Amerikaanse detailhandel | UPC-A | GTIN-12 standaard |
| URL’s en mobiele links | QR Code | Hoge capaciteit, 2D-scanning |
| Marketing en print | QR Code | Scanbaar met telefooncamera’s |
| Alleen numerieke serienummers | Code 128 (Code C) | Hoogste dichtheid voor numerieke gegevens |
Tips en best practices
- Gebruik Code 128 als standaard voor algemene etiketten — het biedt de beste dichtheid-tot-compatibiliteitverhouding onder 1D-symbologieën
- Voor detailhandelsproducten, gebruik de symbologie die vereist is voor uw markt: EAN-13 voor internationaal, UPC-A voor Noord-Amerika
- Stel
QrErrorCorrectionLevel.Hin voor QR-codes die op etiketten worden afgedrukt die worden blootgesteld aan slijtage of gedeeltelijke beschadiging - Laat de bibliotheek altijd controlecijfers automatisch berekenen in plaats van ze handmatig op te geven
- Gebruik
show_text=TrueinRenderOptionsvoor menselijk leesbare etiketten zodat operators gescande gegevens visueel kunnen verifiëren
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
InvalidInputError op EAN-13 | Niet-numerieke tekens in gegevens | EAN-13 accepteert alleen cijfers 0–9 |
InvalidInputError op Code 39 | Kleine letters in basismodus | Instellen Code39Options(full_ascii=True) |
| QR code te groot | Versie te laag voor gegevenslengte | Laat de bibliotheek de versie automatisch selecteren, of verhoog QrOptions.version |
UPC-E InvalidInputError | Data komt niet overeen met het nulonderdrukkingspatroon | Controleer het 6-cijferige UPC-E-formaat of gebruik UPC-A in plaats daarvan |
FAQ
Kan ik Code 128 gebruiken voor volledig numerieke gegevens?
Ja. Code 128 Code C-modus (Code128EncodeMode.CODE_C) is geoptimaliseerd voor volledig numerieke gegevens, waarbij paren van cijfers in één symboolteken worden gecodeerd voor maximale dichtheid.
Wat is het verschil tussen EAN-13 en UPC-A?
UPC-A is een 12-cijferige subset van EAN-13. Een UPC-A code kan worden weergegeven als een EAN-13 met een voorloopnul. Ze zijn functioneel compatibel in retail scansystemen.
Welke symbologie ondersteunt de meeste gegevens?
QR Code ondersteunt tot 7,089 numerieke tekens of 4,296 alfanumerieke tekens. Alle 1D-symbologieën in deze bibliotheek ondersteunen variabele-lengte data, maar QR Code heeft de hoogste capaciteit.
Kan ik symbologieën combineren in één applicatie?
Ja. Maak één BarcodeService-instantie en roep generate() aan met verschillende symbologienamen voor elke barcode. De service lost elke symbologie op via de SymbologyRegistry.
API Reference Samenvatting
| Klasse / Methode | Beschrijving |
|---|---|
BarcodeService.generate(symbology, data, encode, render) | Genereer een barcode voor elke geregistreerde symbologie |
Code128Options | Coderingsopties voor Code 128 (coderingsmodus, GS1, ECI) |
Code128EncodeMode | Enum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC |
Code39Options | Coderingsopties voor Code 39 (volledige ASCII, controlecijfer) |
Code39EncodeMode | Enum: BASE, FULL_ASCII |
Ean13Options | Coderingsopties voor EAN-13 (controlecijferinvoer) |
Ean8Options | Coderingsopties voor EAN-8 (controlecijferinvoer) |
QrOptions | Coderingsopties voor QR Code (foutcorrectie, versie, masker, modus) |
QrEncodeMode | Enum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
QrErrorCorrectionLevel | Enum: L, M, Q, H |
UpcaOptions | Coderingsopties voor UPC-A |
UpceOptions | Coderingsopties voor UPC-E |
SymbologyRegistry | Lost symbologienamen op en levert definities |