Inleiding
Aspose.BarCode FOSS voor Python biedt per-symbool optieklassen die het coderingsgedrag regelen voor alle zeven ondersteunde barcodeformaten. Elke optieklasse erft van EncodeOptions en voegt eigenschappen toe die specifiek zijn voor zijn symbool — Code 128 encode-modi, Code 39 ASCII-selectie, QR foutcorrectieniveaus en EAN/UPC checkcijferafhandeling.
Dit bericht behandelt elke optieklasse, de eigenschappen en werkende codevoorbeelden. Klassen zijn beschikbaar vanuit het top-level aspose_barcode_foss pakket.
Belangrijkste kenmerken
Code 128 Encode-modus
Code128Options bepaalt welke Code 128 tekensets de encoder gebruikt. De eigenschap encode_mode accepteert een Code128EncodeMode enum-waarde: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC of CODE_BC. AUTO selecteert automatisch de meest compacte codering. CODE_C is geoptimaliseerd voor uitsluitend numerieke gegevens (paren van cijfers gecodeerd als enkele codepunten).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
bc = barcode.code128(
"1234567890",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()
Code 128 ondersteunt ook de eigenschappen gs1_enabled en eci_assignment_number die zijn geërfd van EncodeOptions voor GS1 en ECI-metadata.
Code 39 Codering
Code39Options bepaalt of de encoder de basis 43-tekenset gebruikt of de Full ASCII-uitbreiding. Stel full_ascii=True in om Full ASCII-modus in te schakelen, die het volledige 128-tekens ASCII-bereik codeert met shift-paren. De optionele add_check_digit eigenschap voegt een modulo-43 controlecijfer toe.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options
bc = barcode.code39(
"Hello",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()
QR Code Configuratie
QrOptions biedt de rijkste configuratieset onder de ondersteunde symbologieën:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: QR versie (1–40), die de symboolgrootte bepaaltmask: maskerpatroon (0–7) voor handmatige selectie
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
bc = barcode.qr(
"https://example.com/product/12345",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.Q,
encoding_mode=QrEncodeMode.BYTE,
),
)
png_bytes = bc.to_png()
EAN- en UPC-controlecijfers
Ean13Options, Ean8Options, UpcaOptions en UpceOptions hebben elk een allow_check_digit_input-eigenschap. Standaard berekent de bibliotheek het controlecijfer automatisch uit de gegevens. Stel allow_check_digit_input=True in als uw gegevens het controlecijfer al bevatten.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options
# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()
# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)
Renderopties
RenderOptions is van toepassing op alle symbologieën en bepaalt de visuele output. Geef het door aan to_svg() of to_png():
| Eigenschap | Type | Beschrijving |
|---|---|---|
scale | float | Uniforme schaalvermenigvuldiger |
dpi | int | Resolutie voor PNG-uitvoer |
module_width | float | Breedte van één barcode-module |
module_height | float | Hoogte van één barcode-module |
quiet_zone | float | Witruimte-opvulling rond de barcode |
foreground_color | str | Hex-kleur voor balken (bijv., "#000000") |
background_color | str | Hex-kleur voor achtergrond |
transparent_background | bool | Transparante achtergrond voor PNG |
show_text | bool | Toon leesbare tekst onder de barcode |
font_family | str | Lettertype voor leesbare tekst |
font_size | float | Lettergrootte voor menselijk leesbare tekst |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
scale=3.0,
dpi=300,
foreground_color="#1a1a1a",
background_color="#ffffff",
show_text=True,
font_family="Courier New",
))
Foutafhandeling
Alle validatie van encode-opties gebeurt tijdens het ontleden. Als ongeldige gegevens of incompatibele opties worden opgegeven, werpt de bibliotheek een getypeerde uitzondering voordat er met coderen wordt begonnen:
InvalidInputError— gegevens bevatten tekens die niet door de symbologie worden ondersteundEncodingError— codering mislukt (bijv. gegevens overschrijden capaciteit)SymbologyNotFoundError— niet-herkende symbologie-naam doorgegeven aangenerate()UnsupportedCapabilityError— aangevraagde functie niet beschikbaar voor deze symbologie
Alle exceptieklassen erven van BarcodeError.
Snelstart
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Genereer barcodes met verschillende codeeropties en sla ze op:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
Code128Options, Code128EncodeMode,
QrOptions, QrErrorCorrectionLevel,
RenderOptions,
)
# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
"9876543210",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
f.write(c128.to_svg())
# QR with high error correction
qr = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(qr.to_png(options=RenderOptions(scale=4.0)))
# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
f.write(ean.to_svg(options=RenderOptions(
foreground_color="#003366",
show_text=True,
)))
Ondersteunde formaten
| Symbology | Type | Optiesklasse | Belangrijke Eigenschappen |
|---|---|---|---|
| Code 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
Uitvoerformaten:
| Formaat | Extensie | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Open Source & Licenties
Aspose.BarCode FOSS voor Python is gelicentieerd onder de MIT-licentie. De broncode is beschikbaar op GitHub; bouw vanuit de bron. Geen native afhankelijkheden, geen telemetrie, geen gebruikslimieten.