Introduktion
Aspose.BarCode FOSS för Python tillhandahåller per-symbolalternativklasser som styr kodningsbeteendet för alla sju stödda streckkodformat. Varje alternativklass ärver från EncodeOptions och lägger till egenskaper specifika för dess symbol — Code 128 kodningslägen, Code 39 ASCII-val, QR felkorrigeringsnivåer och EAN/UPC kontrollsiffra-hantering.
Detta inlägg täcker varje alternativklass, dess egenskaper och fungerande kodexempel. Klasserna finns tillgängliga från det översta aspose_barcode_foss-paketet.
Viktiga funktioner
Code 128 kodningslägen
Code128Options styr vilka Code 128-teckenuppsättningar kodaren använder. encode_mode-egenskapen accepterar ett Code128EncodeMode-enum-värde: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC eller CODE_BC. AUTO väljer automatiskt den mest kompakta kodningen. CODE_C är optimerad för enbart siffror (par av siffror kodade som enskilda kodpunkter).
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 stöder också gs1_enabled och eci_assignment_number-egenskaper som ärvts från EncodeOptions för GS1 och ECI-metadata.
Code 39 Kodning
Code39Options styr huruvida kodaren använder bas-43-teckensetet eller Full ASCII-utökningen. Ställ in full_ascii=True för att aktivera Full ASCII-läge, vilket kodar hela 128-teckens ASCII-intervallet med skiftpar. Den valfria add_check_digit egenskapen lägger till en modulo-43 kontrollsiffra.
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 Konfiguration
QrOptions erbjuder den rikaste konfigurationsuppsättningen bland de stödda symbologierna:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: QR version (1–40), som styr symbolstorlekmask: maskmönster (0–7) för manuellt val
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- och UPC-kontrollsiffror
Ean13Options, Ean8Options, UpcaOptions och UpceOptions har var och en en allow_check_digit_input egenskap. Som standard beräknar biblioteket kontrollsiffran automatiskt från data. Ställ in allow_check_digit_input=True om dina data redan innehåller kontrollsiffran.
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),
)
Renderingsalternativ
RenderOptions gäller för alla symbologier och styr det visuella resultatet. Skicka den till to_svg() eller to_png():
| Egenskap | Typ | Beskrivning |
|---|---|---|
scale | float | Uniform skalningsmultiplikator |
dpi | int | Upplösning för PNG-utdata |
module_width | float | Bredd på en streckkodmodul |
module_height | float | Höjd på en streckkodmodul |
quiet_zone | float | Mellanrumspadding runt streckkoden |
foreground_color | str | Hex-färg för streck (t.ex., "#000000") |
background_color | str | Hex-färg för bakgrund |
transparent_background | bool | Genomskinlig bakgrund för PNG |
show_text | bool | Visa läsbar text under streckkoden |
font_family | str | Typsnitt för läsbar text |
font_size | float | Typsnittsstorlek för läsbar text |
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",
))
Felhantering
All kodningsalternativvalidering sker vid parsningstid. Om ogiltiga data eller inkompatibla alternativ tillhandahålls, kastar biblioteket ett typat undantag innan någon kodning påbörjas:
InvalidInputError— data innehåller tecken som inte stöds av symbologinEncodingError— kodning misslyckas (t.ex. data överskrider kapaciteten)SymbologyNotFoundError— okänt symbologinamn skickat tillgenerate()UnsupportedCapabilityError— begärd funktion är inte tillgänglig för denna symbologi
Alla undantagsklasser ärver från BarcodeError.
Snabbstart
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Generera streckkoder med olika kodningsalternativ och spara dem:
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,
)))
Stödda format
| Symbology | Typ | Alternativklass | Nyckelegenskaper |
|---|---|---|---|
| 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 |
Utdataformat:
| Format | Filändelse | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Öppen källkod & licensiering
Aspose.BarCode FOSS för Python är licensierad under MIT. Källkoden finns tillgänglig på GitHub; bygg från källkoden. Inga inhemska beroenden, ingen telemetri, inga användningsbegränsningar.