Arbeiten mit Encode Options
Arbeiten mit Encode-Optionen
Jede Strichcode-Symbologie in Aspose.BarCode FOSS für Python hat eine eigene Optionsklasse, die das Kodierungsverhalten steuert. Alle Optionsklassen erben von EncodeOptions, das gs1_enabled- und eci_assignment_number-Eigenschaften bereitstellt, die über Symbologien hinweg gemeinsam sind.
Code128Options
Code128Options steuert, welche Code 128-Zeichensätze der Encoder auswählt. Die encode_mode-Eigenschaft akzeptiert einen Code128EncodeMode-Enum-Wert.
| Mode | Beschreibung |
|---|---|
AUTO | Wählt die kompakteste Kodierung automatisch aus |
CODE_A | Großbuchstaben, Ziffern und Steuerzeichen |
CODE_B | Großbuchstaben, Kleinbuchstaben und Ziffern |
CODE_C | Ziffernpaar — optimiert für ausschließlich numerische Daten |
CODE_AB | Wechselt zwischen Code A und Code B |
CODE_AC | Wechselt zwischen Code A und Code C |
CODE_BC | Wechselt zwischen Code B und Code C |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))
# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))
# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))Code39Options
Code39Options steuert, ob der Encoder den Basis-43-Zeichensatz oder die Full-ASCII-Erweiterung verwendet.
| Eigenschaft | Typ | Default | Beschreibung |
|---|---|---|---|
full_ascii | bool | None | Voll-ASCII-Modus aktivieren (128-Zeichen-Bereich über Shift-Paare) |
add_check_digit | bool | None | Fügen Sie eine Modulo-43-Prüfziffer hinzu |
from aspose_barcode_foss import Code39Options
# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")
# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
"Hello, World!",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)QrOptions
QrOptions hat die größte Konfigurationsfläche unter allen Symbologien.
| Eigenschaft | Typ | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7%), M (15%), Q (25%), H (30%) |
encoding_mode | QrEncodeMode | AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
version | int | 1–40 (steuert Symbolabmessungen) |
mask | int | 0–7 (manuelle Auswahl des Maskenmusters) |
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
# High error correction with byte encoding
bc = barcode.qr(
"https://example.com",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.H,
encoding_mode=QrEncodeMode.BYTE,
),
)
# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
"0123456789",
encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)
# Explicit version and mask
bc_v5 = barcode.qr(
"TEST",
encode=QrOptions(version=5, mask=3),
)Ean13Options
Ean13Options steuert die Handhabung der Prüfziffer für EAN-13-Barcodes.
| Eigenschaft | Typ | Default | Beschreibung |
|---|---|---|---|
allow_check_digit_input | bool | None | Akzeptieren Sie eine 13-stellige Eingabe mit vorab berechneter Prüfziffer |
from aspose_barcode_foss import Ean13Options
# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")
# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)Ean8Options
Ean8Options funktioniert identisch zu Ean13Options, jedoch für 8-stellige EAN-Barcodes. Geben Sie 7 Nutzdatenziffern an (die Bibliothek berechnet die 8.), oder setzen Sie allow_check_digit_input=True für eine 8-stellige Eingabe.
from aspose_barcode_foss import Ean8Options
bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))UpcaOptions und UpceOptions
UpcaOptions und UpceOptions folgen dem gleichen allow_check_digit_input-Muster wie EAN-Optionen. UpceOptions hat außerdem eine number_system-Eigenschaft.
from aspose_barcode_foss import UpcaOptions, UpceOptions
# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")
# UPC-E with pre-computed check digit
bc_e = barcode.upce(
"01234565",
encode=UpceOptions(allow_check_digit_input=True),
)EncodeOptions Basiseigenschaften
Alle Optionsklassen erben diese Eigenschaften von EncodeOptions:
| Eigenschaft | Typ | Beschreibung |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
Tipps und bewährte Vorgehensweisen
- Verwenden Sie
Code128EncodeMode.AUTO, es sei denn, Sie haben einen konkreten Grund, Zeichensätze einzuschränken — es erzeugt den kürzesten Barcode für jede Eingabe. - Setzen Sie
QrErrorCorrectionLevel.Hfür QR Codes, die auf Oberflächen gedruckt werden, die zu Beschädigungen neigen. - Lassen Sie die Bibliothek standardmäßig Prüfziffern berechnen — setzen Sie
allow_check_digit_input=Truenur ein, wenn Sie vorvalidierte Daten von einem anderen System erhalten. - Verwenden Sie
QrEncodeMode.NUMERICfür ausschließlich numerische QR-Daten, um die Symbolgröße zu minimieren.
Häufige Probleme
| Problem | Ursache | Lösung |
|---|---|---|
InvalidInputError auf Code 39 | Eingabe enthält Kleinbuchstaben | Setze full_ascii=True in Code39Options |
| QR code zu groß | Version zu niedrig für die Datenlänge | Entfernen Sie das explizite version oder erhöhen Sie es |
| Falsche Prüfziffer bei EAN-13 | 13-stellige Eingabe ohne allow_check_digit_input=True | Gib 12 Ziffern (auto) ein oder setze die Option auf True |
SymbologyNotFoundError | Falsch geschriebener Symbolname in generate() | Verwende eines von: code128, code39, ean13, ean8, qr, upca, upce |