Werken met Encode Options
Werken met encode-opties
Elke barcode-symbologie in Aspose.BarCode FOSS voor Python heeft een toegewijde optiesklasse die het coderingsgedrag regelt. Alle optieklassen erven van EncodeOptions, die gs1_enabled en eci_assignment_number eigenschappen levert die gedeeld worden over symbologieën.
Code128Options
Code128Options bepaalt welke Code 128 tekensets de encoder selecteert. De encode_mode eigenschap accepteert een Code128EncodeMode enum-waarde.
| Mode | Beschrijving |
|---|---|
AUTO | Selecteert automatisch de meest compacte codering |
CODE_A | Hoofdletters, cijfers en controletekens |
CODE_B | Hoofdletters, kleine letters en cijfers |
CODE_C | Cijferparen — geoptimaliseerd voor uitsluitend numerieke gegevens |
CODE_AB | Wisselt tussen Code A en Code B |
CODE_AC | Wisselt tussen Code A en Code C |
CODE_BC | Wisselt tussen Code B en 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 bepaalt of de encoder de basis 43-tekenset of de Full ASCII-extensie gebruikt.
| Eigenschap | Type | Default | Beschrijving |
|---|---|---|---|
full_ascii | bool | None | Schakel volledige ASCII-modus in (128-tekens bereik via shift-paren) |
add_check_digit | bool | None | Voeg een modulo-43 controlecijfer toe |
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 heeft het grootste configuratieoppervlak van alle symbologieën.
| Eigenschap | Type | 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 (regelt symboolafmetingen) |
mask | int | 0–7 (handmatige maskerpatroonselectie) |
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 regelt de verwerking van het controlecijfer voor EAN-13 barcodes.
| Eigenschap | Type | Default | Beschrijving |
|---|---|---|---|
allow_check_digit_input | bool | None | Accepteer een 13-cijferige invoer met vooraf berekende controlecijfer |
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 werkt identiek aan Ean13Options maar voor 8-cijferige EAN-barcodes. Geef 7 payloadcijfers op (de bibliotheek berekent de 8e), of stel allow_check_digit_input=True in voor een 8-cijferige invoer.
from aspose_barcode_foss import Ean8Options
bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))UpcaOptions en UpceOptions
UpcaOptions en UpceOptions volgen hetzelfde allow_check_digit_input patroon als EAN-opties. UpceOptions heeft ook een number_system eigenschap.
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 Basis eigenschappen
Alle optieklassen erven deze eigenschappen van EncodeOptions:
| Eigenschap | Type | Beschrijving |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
Tips en best practices
- Gebruik
Code128EncodeMode.AUTOtenzij u een specifieke reden heeft om tekensets te beperken — het produceert de kortste barcode voor elke invoer. - Stel
QrErrorCorrectionLevel.Hin voor QR-codes die op oppervlakken worden afgedrukt die gevoelig zijn voor beschadiging. - Laat de bibliotheek standaard controlecijfers berekenen — stel
allow_check_digit_input=Truealleen in wanneer u vooraf gevalideerde gegevens van een ander systeem ontvangt. - Gebruik
QrEncodeMode.NUMERICvoor uitsluitend uit cijfers bestaande QR-gegevens om de symboolgrootte te minimaliseren.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
InvalidInputError op Code 39 | Invoer bevat kleine letters | Stel full_ascii=True in Code39Options |
| QR code te groot | Versie ingesteld te laag voor de gegevenslengte | Verwijder expliciete version of verhoog deze |
| Verkeerde controlecijfer op EAN-13 | 13-cijferige invoer zonder allow_check_digit_input=True | Geef 12 cijfers door (auto) of stel de optie in op True |
SymbologyNotFoundError | Fout gespelde symbologienaam in generate() | Gebruik een van: code128, code39, ean13, ean8, qr, upca, upce |