Введение

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

Свойство quiet_zone задает пустой отступ вокруг штрихкода в единицах ширины модуля. Большинству стандартов штрихкодов требуется минимальная 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. Исходный код размещён на GitHub. Вы можете использовать, изменять и распространять библиотеку как в открытых, так и в коммерческих проектах.


Начало работы

Связанные ресурсы