Werken met Encode Options

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.

ModeBeschrijving
AUTOSelecteert automatisch de meest compacte codering
CODE_AHoofdletters, cijfers en controletekens
CODE_BHoofdletters, kleine letters en cijfers
CODE_CCijferparen — geoptimaliseerd voor uitsluitend numerieke gegevens
CODE_ABWisselt tussen Code A en Code B
CODE_ACWisselt tussen Code A en Code C
CODE_BCWisselt 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.

EigenschapTypeDefaultBeschrijving
full_asciiboolNoneSchakel volledige ASCII-modus in (128-tekens bereik via shift-paren)
add_check_digitboolNoneVoeg 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.

EigenschapTypeValues
error_correction_levelQrErrorCorrectionLevelL (7%), M (15%), Q (25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (regelt symboolafmetingen)
maskint0–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.

EigenschapTypeDefaultBeschrijving
allow_check_digit_inputboolNoneAccepteer 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:

EigenschapTypeBeschrijving
gs1_enabled`boolNone`
eci_assignment_number`intNone`

Tips en best practices

  • Gebruik Code128EncodeMode.AUTO tenzij u een specifieke reden heeft om tekensets te beperken — het produceert de kortste barcode voor elke invoer.
  • Stel QrErrorCorrectionLevel.H in voor QR-codes die op oppervlakken worden afgedrukt die gevoelig zijn voor beschadiging.
  • Laat de bibliotheek standaard controlecijfers berekenen — stel allow_check_digit_input=True alleen in wanneer u vooraf gevalideerde gegevens van een ander systeem ontvangt.
  • Gebruik QrEncodeMode.NUMERIC voor uitsluitend uit cijfers bestaande QR-gegevens om de symboolgrootte te minimaliseren.

Veelvoorkomende problemen

ProbleemOorzaakOplossing
InvalidInputError op Code 39Invoer bevat kleine lettersStel full_ascii=True in Code39Options
QR code te grootVersie ingesteld te laag voor de gegevenslengteVerwijder expliciete version of verhoog deze
Verkeerde controlecijfer op EAN-1313-cijferige invoer zonder allow_check_digit_input=TrueGeef 12 cijfers door (auto) of stel de optie in op True
SymbologyNotFoundErrorFout gespelde symbologienaam in generate()Gebruik een van: code128, code39, ean13, ean8, qr, upca, upce

Zie ook

 Nederlands