Wprowadzenie
Wydajemy Aspose.BarCode FOSS dla Python, czysta biblioteka Python do generowania kodów kreskowych 1D i 2D zgodnych ze standardami. Źródło jest dostępne na GitHub as aspose-barcode-foss, posiada licencję MIT i nie ma żadnych zewnętrznych zależności.
Biblioteka obsługuje siedem symbologii: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A i UPC-E. Każdy kod kreskowy renderowany jest bezpośrednio do SVG lub PNG. Nie ma natywnych rozszerzeń, żadnych pakietów systemowych do instalacji ani wymaganego sterownika graficznego — buduj ze źródła na Windows, Linux i macOS.
Kluczowe funkcje
Generowanie wysokiego poziomu API
Funkcja najwyższego poziomu generate() przyjmuje nazwę symbologii i ciąg danych, zwracając obiekt Barcode. Dedykowane pomocniki per-symbologia — code128(), code39(), ean13(), ean8(), qr(), upca() i upce() — zapewniają typowo-bezpieczne punkty wejścia dla każdego formatu.
import aspose_barcode_foss as barcode
bc = barcode.generate("code128", "ABC123")
svg = bc.to_svg()
Opcje kodowania specyficzne dla symbologii
Każda symbolika akceptuje klasę opcji, która kontroluje zachowanie kodowania. Code128Options zapewnia encode_mode (AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, CODE_BC). Code39Options obsługuje tryby BASE i FULL_ASCII. QrOptions udostępnia error_correction_level (L, M, Q, H), version, mask oraz encoding_mode (AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel
bc = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
png_bytes = bc.to_png()
Kontrole renderowania
RenderOptions kontroluje wyjście wizualne: scale, dpi, module_width, module_height, quiet_zone, foreground_color, background_color, transparent_background, show_text, font_family i font_size. Zarówno to_svg(), jak i to_png() akceptują opcjonalny parametr RenderOptions.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.ean13("590123412345")
svg = bc.to_svg(options=RenderOptions(
scale=2.0,
foreground_color="#003366",
quiet_zone=10.0,
show_text=True,
))
Automatyczne cyfry kontrolne
EAN-13, EAN-8, UPC-A i UPC-E obliczają cyfry kontrolne automatycznie na podstawie ciągu danych. Dostarczasz tylko cyfry ładunku; biblioteka dopisuje prawidłową cyfrę kontrolną podczas kodowania.
Walidacja wejścia
Każda symbolika ma dedykowany InputParser, który waliduje dane przed kodowaniem. Nieprawidłowe znaki, niepoprawne długości i naruszenia formatu są wykrywane wcześnie przy pomocy typowanych wyjątków: InvalidInputError, EncodingError, SymbologyNotFoundError i UnsupportedCapabilityError — wszystkie dziedziczą po BarcodeError.
Szybki start
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .Wygeneruj kod kreskowy Code 128 i zapisz SVG do pliku:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.code128("Hello World")
svg = bc.to_svg(options=RenderOptions(show_text=True))
with open("barcode.svg", "w") as f:
f.write(svg)
Wygeneruj QR code i zapisz go jako PNG:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel
bc = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(bc.to_png())
Biblioteka wymaga Python 3.12 lub nowszej.
Obsługiwane formaty
| Symbology | Typ | Cyfra kontrolna | Klasa Opcji |
|---|---|---|---|
| Code 128 | 1D | Wbudowane | Code128Options |
| Code 39 | 1D | Optional | Code39Options |
| EAN-13 | 1D | Automatic | Ean13Options |
| EAN-8 | 1D | Automatic | Ean8Options |
| QR Code | 2D | Wbudowany | QrOptions |
| UPC-A | 1D | Automatic | UpcaOptions |
| UPC-E | 1D | Automatic | UpceOptions |
Formaty wyjściowe:
| Format | Rozszerzenie | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
Open Source i licencjonowanie
Biblioteka jest licencjonowana na licencji MIT. Możesz używać jej w aplikacjach komercyjnych, modyfikować ją i rozpowszechniać bez ograniczeń. Źródło jest dostępne na GitHub. Nie ma żadnych poziomów użytkowania, limitów tokenów ani telemetrii. Całe przetwarzanie odbywa się lokalnie.