Auswahl einer Barcode-Symbologie
Auswahl einer Barcode-Symbologie
Aspose.BarCode FOSS für Python unterstützt sieben Symbologien. Jede ist für unterschiedliche Datentypen, Scan-Umgebungen und Industriestandards geeignet. Dieser Leitfaden behandelt die Merkmale jeder Symbologie und wann sie zu verwenden ist.
Übersicht der Symbologien
| Symbology | Typ | Zeichensatz | Datenkapazität | Prüfziffer |
|---|---|---|---|---|
| Code 128 | 1D | Voll-ASCII (128 Zeichen) | Variable Länge | Automatisch (mod-103) |
| Code 39 | 1D | A–Z, 0–9 und 7 Sonderzeichen (Basis); Voll-ASCII (erweitert) | Variable Länge | Optional |
| EAN-13 | 1D | Nur numerisch (0–9) | 12 Datenziffern + 1 Prüfziffer | Automatic |
| EAN-8 | 1D | Nur numerisch (0–9) | 7 Datenziffern + 1 Prüfziffer | Automatic |
| QR Code | 2D | Numerisch, alphanumerisch, Byte und Kanji | Bis zu 7.089 numerisch / 4.296 alphanumerisch | Automatisch (Reed-Solomon) |
| UPC-A | 1D | Nur numerisch (0–9) | 11 Datenziffern + 1 Prüfziffer | Automatic |
| UPC-E | 1D | Nur numerisch (0–9) | 6 Datenziffern (komprimiert UPC-A) | Automatic |
Code 128
Code 128 codiert den vollständigen ASCII-Zeichensatz mit hoher Dichte. Es verwendet drei Zeichensätze (A, B, C) und wechselt in AUTO-Modus automatisch zwischen ihnen.
Am besten geeignet für: Bestandsetiketten, Versandetiketten, allgemeine alphanumerische Daten.
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 unterstützt Großbuchstaben, Ziffern und 7 Sonderzeichen im Basismodus. Aktivieren Sie full_ascii=True, um den gesamten ASCII-Bereich zu codieren. Eine optionale Prüfziffer kann über add_check_digit hinzugefügt werden.
Am besten geeignet für: Industrieetiketten, behördliche/militärische Kennzeichnungen (LOGMARS) und Umgebungen, in denen Einfachheit wichtiger ist als Dichte.
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 ist der Standard-Barcode für Einzelhandelsprodukte außerhalb Nordamerikas. Er codiert exakt 12 Datenziffern; die 13. Ziffer ist eine automatisch berechnete Prüfziffer. Verwenden Sie Ean13Options, um das Eingabeverhalten der Prüfziffer zu steuern.
Am besten geeignet für: Einzelhandelsproduktidentifikation, internationale Handelsartikel (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 ist die kompakte Version von EAN-13, verwendet auf kleinen Einzelhandelsverpackungen, wo Platz begrenzt ist. Sie codiert 7 Datenziffern plus 1 Prüfziffer.
Am besten geeignet für: kleine Einzelhandelsprodukte, Artikel mit begrenztem Etikettenplatz.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("ean8", "9638507")
svg = barcode.to_svg()QR Code
QR Code ist eine 2D-Matrix-Symbologie, die große Datenmengen auf kleinem Raum speichert. Sie unterstützt vier Kodierungsmodi über QrEncodeMode: NUMERIC, ALPHANUMERIC, BYTE und KANJI. Die Fehlerkorrektur ist über QrErrorCorrectionLevel (L, M, Q, H) konfigurierbar.
Am besten geeignet für: URLs, mobile Anwendungen, Marketingmaterialien und jede Anwendung, die hohe Datenkapazität oder Nicht-ASCII-Zeichen erfordert.
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 ist der Standard-Barcode für Einzelhandelsprodukte in Nordamerika. Er kodiert 11 Datenziffern plus 1 Prüfziffer. UPC-A ist eine Teilmenge von EAN-13 mit einer führenden Null.
Am besten geeignet für: Identifikation von Einzelhandelsprodukten in Nordamerika (GTIN-12).
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("upca", "01234567890")
svg = barcode.to_svg()UPC-E
UPC-E ist eine komprimierte Form von UPC-A für kleine Einzelhandelsartikel. Sie kodiert 6 Datenziffern, indem Nullen aus der vollständigen UPC-A-Darstellung weggelassen werden.
Am besten geeignet für: kleine Einzelhandelsartikel, Gutscheine und Etiketten, bei denen Platz begrenzt ist.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
barcode = service.generate("upce", "0123456")
svg = barcode.to_svg()Entscheidungsleitfaden
Verwenden Sie diese Tabelle, um die richtige Symbolik für Ihre Anwendung auszuwählen:
| Anwendungsfall | Empfohlene Symbolik | Reason |
|---|---|---|
| Lagerbestand | Code 128 | Voll-ASCII, hohe Dichte, variable Länge |
| Militär/LOGMARS-Etiketten | Code 39 | Breite Akzeptanz in Regierungssystemen |
| Internationaler Einzelhandel | EAN-13 | GTIN-13 Standard |
| Kleine Einzelhandelsverpackung | EAN-8 oder UPC-E | Kompakte physische Größe |
| Nordamerikanischer Einzelhandel | UPC-A | GTIN-12 Standard |
| URLs und mobile Links | QR Code | Hohe Kapazität, 2D-Scanning |
| Marketing und Druck | QR Code | Mit Handykameras scannbar |
| Alle numerischen Seriennummern | Code 128 (Code C) | Höchste Dichte für numerische Daten |
Tipps und bewährte Verfahren
- Verwenden Sie Code 128 als Standard für universelle Etiketten — es bietet das beste Dichte-zu-Kompatibilitäts-Verhältnis unter den 1D-Symboliken
- Für Einzelhandelsprodukte verwenden Sie die für Ihren Markt erforderliche Symbolik: EAN-13 für international, UPC-A für Nordamerika
- Setzen Sie
QrErrorCorrectionLevel.Hfür QR-Codes, die auf Etiketten gedruckt werden, die Verschleiß oder Teilbeschädigungen ausgesetzt sind - Lassen Sie die Bibliothek stets die Prüfziffern automatisch berechnen, anstatt sie manuell anzugeben
- Verwenden Sie
show_text=TrueinRenderOptionsfür menschenlesbare Beschriftungen, damit Bediener die gescannten Daten visuell überprüfen können
Häufige Probleme
| Ausgabe | Ursache | Behebung |
|---|---|---|
InvalidInputError auf EAN-13 | Nicht-numerische Zeichen in den Daten | EAN-13 akzeptiert nur Ziffern 0–9 |
InvalidInputError auf Code 39 | Kleinbuchstaben im Basismodus | Setzen Code39Options(full_ascii=True) |
| QR code zu groß | Version zu niedrig für Datenlänge | Lassen Sie die Bibliothek die Version automatisch auswählen, oder erhöhen Sie QrOptions.version |
UPC-E InvalidInputError | Daten entsprechen nicht dem Nullunterdrückungsmuster | Überprüfen Sie das 6-stellige UPC-E-Format oder verwenden Sie stattdessen UPC-A |
FAQ
Kann ich Code 128 für rein numerische Daten verwenden?
Ja. Der Code 128 Code-C-Modus (Code128EncodeMode.CODE_C) ist für rein numerische Daten optimiert und codiert Ziffernpaaren in einem einzelnen Symbolzeichen für maximale Dichte.
Was ist der Unterschied zwischen EAN-13 und UPC-A?
UPC-A ist ein 12-stelliges Teilset von EAN-13. Ein UPC-A-Code kann als EAN-13 mit einer führenden Null dargestellt werden. Sie sind funktional kompatibel in Einzelhandels-Scansystemen.
Welche Symbologie unterstützt die meisten Daten?
QR Code unterstützt bis zu 7.089 numerische Zeichen oder 4.296 alphanumerische Zeichen. Alle 1D-Symbologien in dieser Bibliothek unterstützen Daten variabler Länge, aber QR Code hat die höchste Kapazität.
Kann ich Symbologien in einer einzigen Anwendung kombinieren?
Ja. Erstellen Sie eine BarcodeService-Instanz und rufen Sie generate() mit unterschiedlichen Symbologie-Namen für jeden Barcode auf. Der Dienst löst jede Symbologie über das SymbologyRegistry auf.
API Reference Zusammenfassung
| Klasse / Methode | Beschreibung |
|---|---|
BarcodeService.generate(symbology, data, encode, render) | Erzeugen Sie einen Barcode für jede registrierte Symbolik |
Code128Options | Kodierungsoptionen für Code 128 (Kodiermodus, GS1, ECI) |
Code128EncodeMode | Enum: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC |
Code39Options | Kodierungsoptionen für Code 39 (vollständiges ASCII, Prüfziffer) |
Code39EncodeMode | Enum: BASE, FULL_ASCII |
Ean13Options | Kodierungsoptionen für EAN-13 (Prüfziffer-Eingabe) |
Ean8Options | Kodierungsoptionen für EAN-8 (Prüfziffer-Eingabe) |
QrOptions | Kodierungsoptionen für QR Code (Fehlerkorrektur, Version, Maske, Modus) |
QrEncodeMode | Enum: AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
QrErrorCorrectionLevel | Enum: L, M, Q, H |
UpcaOptions | Kodierungsoptionen für UPC-A |
UpceOptions | Kodierungsoptionen für UPC-E |
SymbologyRegistry | Löst Symbolnamen auf und liefert Definitionen |