소개

Aspose.BarCode FOSS for Python는 7가지 심볼로지의 바코드를 생성하고 SVG 및 PNG로 렌더링합니다. 이 게시물은 렌더링 파이프라인에 초점을 맞추며, RenderOptions, SvgRenderer, PngRenderer를 사용하여 출력 형식, 크기, 색상 및 사람이 읽을 수 있는 텍스트를 제어하는 방법을 다룹니다.

이 라이브러리는 PyPI에서 aspose-barcode-foss로 제공되며, 네이티브 종속성이 없는 MIT 라이선스로 출시되었습니다. 모든 바코드 객체는 to_svg()to_png() 편의 메서드를 제공하고, any Renderer 구현을 받아들이는 하위 레벨 render() 메서드도 포함합니다.


주요 기능

SvgRenderer를 사용한 SVG 출력

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))

PngRenderer를 사용한 PNG 출력

PngRenderer은(는) 래스터 PNG 이미지를 생성합니다. RenderOptionsdpi 속성으로 해상도를 제어합니다. 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_colorbackground_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_familyfont_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)

빠른 시작

git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .
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 for Python는 MIT 라이선스 하에 배포됩니다. 소스 코드는 GitHub에 호스팅됩니다. 라이브러리를 오픈 소스 및 상업 프로젝트 모두에서 사용, 수정, 재배포할 수 있습니다.


시작하기

관련 리소스