Вступ

Aspose.BarCode FOSS для Python генерує штрих-коди у семи символогіях і виводить їх у SVG та PNG. У цьому дописі розглядається конвеєр відображення — як керувати форматом виводу, розмірами, кольорами та читабельним текстом за допомогою RenderOptions, SvgRenderer та PngRenderer.

Бібліотека доступна на PyPI як aspose-barcode-foss, випущена під ліцензією MIT без нативних залежностей. Кожен об’єкт штрих-коду надає зручні методи to_svg() та to_png(), а також нижчого рівня метод render(), який приймає будь-яку реалізацію Renderer.


Ключові особливості

Вивід SVG за допомогою SvgRenderer

SvgRenderer створює масштабовану SVG-розмітку, незалежну від роздільної здатності. Метод Barcode.to_svg() — це скорочення, яке внутрішньо використовує SvgRenderer.

from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer

service = BarcodeService()
barcode = service.generate("code128", "RENDER-TEST-001")

# Direct convenience method
svg_string = barcode.to_svg(RenderOptions(scale=2.0))

# Explicit renderer usage
renderer = SvgRenderer()
result = barcode.render(renderer, RenderOptions(scale=2.0, show_text=True))

Вивід PNG за допомогою PngRenderer

PngRenderer створює растрові PNG-зображення. Керуйте роздільною здатністю за допомогою властивості dpi у RenderOptions. Метод Barcode.to_png() — це зручний скорочений варіант.

from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import PngRenderer

service = BarcodeService()
barcode = service.generate("ean13", "590123412345")

# Convenience method — returns bytes
png_bytes = barcode.to_png(RenderOptions(dpi=300, scale=3.0))

with open("barcode.png", "wb") as f:
    f.write(png_bytes)

Керування масштабом і DPI

RenderOptions надає scale (множник розмірів модулів) та dpi (точок на дюйм для растрового виводу). Вони працюють разом: scale впливає на логічний розмір штрихів і проміжків, тоді як dpi керує щільністю пікселів у PNG-виводі.

from aspose_barcode_foss import RenderOptions

# High-resolution print label
print_options = RenderOptions(scale=4.0, dpi=600)

# Screen display
screen_options = RenderOptions(scale=1.0, dpi=96)

Кольори та фон

Встановіть foreground_color і background_color у вигляді рядків кольорів CSS. Увімкніть transparent_background, щоб пропустити заповнення фону (корисно для накладання на існуючі дизайни).

from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()
barcode = service.generate("qrcode", "https://example.com")

options = RenderOptions(
    foreground_color="#003366",
    background_color="#FFFFFF",
    scale=3.0,
)
svg = barcode.to_svg(options)

Керування тихою зоною

Властивість quiet_zone задає порожній відступ навколо штрихкоду в одиницях ширини модуля. Більшість стандартів штрихкоду вимагають мінімальну тиху зону для надійного зчитування.

from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()
barcode = service.generate("code39", "QUIET-ZONE")

# Wider quiet zone for print use
options = RenderOptions(quiet_zone=10.0, scale=2.0)
svg = barcode.to_svg(options)

Текст, зрозумілий людині

Встановіть show_text=True, щоб відображати закодовані дані під штрих-кодом. Властивості font_family та font_size керують виглядом тексту.

from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()
barcode = service.generate("upca", "01234567890")

options = RenderOptions(
    show_text=True,
    font_family="monospace",
    font_size=12.0,
    scale=2.5,
)
svg = barcode.to_svg(options)

Швидкий старт

asposefoss/barcode is not yet published — build from source until it ships. See the project README for build instructions.
from aspose_barcode_foss import BarcodeService, RenderOptions

service = BarcodeService()

# Generate a Code 128 barcode
barcode = service.generate("code128", "HELLO-2026")

# Render to SVG with custom options
options = RenderOptions(
    scale=2.0,
    show_text=True,
    foreground_color="#000000",
    background_color="#FFFFFF",
    quiet_zone=4.0,
)

svg_output = barcode.to_svg(options)
with open("hello.svg", "w") as f:
    f.write(svg_output)

# Render to PNG at 300 DPI
png_bytes = barcode.to_png(RenderOptions(dpi=300, scale=3.0))
with open("hello.png", "wb") as f:
    f.write(png_bytes)

Підтримувані формати

ФорматРозширенняЧитатиЗаписувати
SVG.svg
PNG.png

Примітка: PdfRenderer присутній у API, але викликає NotImplementedError у поточному випуску.


Відкритий код і ліцензування

Aspose.BarCode FOSS для Python випущений під ліцензією MIT License. Вихідний код розміщений на GitHub. Ви можете використовувати, змінювати та розповсюджувати бібліотеку як у відкритих, так і у комерційних проєктах.


Початок роботи

Пов’язані ресурси