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, .KANJI
  • version: QR version (1–40), som styr symbolstorlek
  • mask: 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():

EgenskapTypBeskrivning
scalefloatUniform skalningsmultiplikator
dpiintUpplösning för PNG-utdata
module_widthfloatBredd på en streckkodmodul
module_heightfloatHöjd på en streckkodmodul
quiet_zonefloatMellanrumspadding runt streckkoden
foreground_colorstrHex-färg för streck (t.ex., "#000000")
background_colorstrHex-färg för bakgrund
transparent_backgroundboolGenomskinlig bakgrund för PNG
show_textboolVisa läsbar text under streckkoden
font_familystrTypsnitt för läsbar text
font_sizefloatTypsnittsstorlek 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 symbologin
  • EncodingError — kodning misslyckas (t.ex. data överskrider kapaciteten)
  • SymbologyNotFoundError — okänt symbologinamn skickat till generate()
  • 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

SymbologyTypAlternativklassNyckelegenskaper
Code 1281DCode128Optionsencode_mode
Code 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR Code2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

Utdataformat:

FormatFiländelseExport
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.


Kom igång

Relaterade resurser