소개
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 이미지를 생성합니다. RenderOptions의 dpi 속성으로 해상도를 제어합니다. 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)
빠른 시작
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에 호스팅됩니다. 라이브러리를 오픈 소스 및 상업 프로젝트 모두에서 사용, 수정, 재배포할 수 있습니다.