소개

Aspose.BarCode FOSS for Python은(는) 지원되는 일곱 가지 바코드 형식 전체에 걸쳐 인코딩 동작을 제어하는 심볼별 옵션 클래스를 제공합니다. 각 옵션 클래스는 EncodeOptions을(를) 상속하고 해당 심볼에 특화된 속성을 추가합니다 — Code 128 인코드 모드, Code 39 ASCII 선택, QR 오류 정정 수준, 그리고 EAN/UPC 체크 디지털 처리.

이 게시물에서는 각 옵션 클래스, 해당 속성 및 작동 코드 예제를 다룹니다. 클래스는 최상위 aspose_barcode_foss 패키지에서 사용할 수 있습니다.


핵심 기능

Code 128 인코드 모드

Code128Options은(는) 인코더가 사용하는 Code 128 문자 집합을 제어합니다. encode_mode 속성은 Code128EncodeMode 열거형 값을 허용합니다: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC, 또는 CODE_BC. AUTO는 가장 압축된 인코딩을 자동으로 선택합니다. CODE_C은(는) 숫자 전용 데이터에 최적화되어 있습니다(두 자리 숫자를 단일 코드 포인트로 인코딩).

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode

bc = barcode.code128(
    "1234567890",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()

Code 128은(는) 또한 GS1 및 ECI 메타데이터를 위해 EncodeOptions에서 상속된 gs1_enabledeci_assignment_number 속성을 지원합니다.

Code 39 인코딩

Code39Options은(는) 인코더가 기본 43문자 집합을 사용할지 전체 ASCII 확장을 사용할지 제어합니다. full_ascii=True을(를) 설정하면 전체 ASCII 모드가 활성화되며, 이는 시프트 쌍을 사용하여 전체 128문자 ASCII 범위를 인코딩합니다. 선택적 add_check_digit 속성은 modulo-43 체크 디지털을 추가합니다.

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options

bc = barcode.code39(
    "Hello",
    encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()

QR Code 구성

QrOptions은(는) 지원되는 심볼류 중 가장 풍부한 구성 세트를 제공합니다:

  • error_correction_level: QrErrorCorrectionLevel.L (7%), .M (15%), .Q (25%), .H (30%)
  • encoding_mode: QrEncodeMode.AUTO, .NUMERIC, .ALPHANUMERIC, .BYTE, .KANJI
  • version: QR 버전 (1–40), 심볼 크기를 제어
  • mask: 수동 선택을 위한 마스크 패턴 (0–7)
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode

bc = barcode.qr(
    "https://example.com/product/12345",
    encode=QrOptions(
        error_correction_level=QrErrorCorrectionLevel.Q,
        encoding_mode=QrEncodeMode.BYTE,
    ),
)
png_bytes = bc.to_png()

EAN 및 UPC 체크 디지트

Ean13Options, Ean8Options, UpcaOptions, 및 UpceOptions 각각은 allow_check_digit_input 속성을 가집니다. 기본적으로 라이브러리는 데이터에서 체크 디지트를 자동으로 계산합니다. 데이터에 이미 체크 디지트가 포함된 경우 allow_check_digit_input=True를 설정하십시오.

import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options

# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()

# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
    "5901234123457",
    encode=Ean13Options(allow_check_digit_input=True),
)

렌더링 옵션

RenderOptions은 모든 심볼에 적용되며 시각적 출력을 제어합니다. to_svg() 또는 to_png()에 전달하십시오:

속성유형설명
scalefloat균일 스케일 배수
dpiintPNG 출력 해상도
module_widthfloat바코드 모듈 하나의 너비
module_heightfloat바코드 모듈 하나의 높이
quiet_zonefloat바코드 주변의 공백 패딩
foreground_colorstr막대에 대한 Hex 색상 (예: "#000000")
background_colorstr배경에 대한 Hex 색상
transparent_backgroundboolPNG용 투명 배경
show_textbool바코드 아래에 사람이 읽을 수 있는 텍스트 표시
font_familystr사람이 읽을 수 있는 텍스트의 글꼴
font_sizefloat인간이 읽을 수 있는 텍스트의 글꼴 크기
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions

bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
    scale=3.0,
    dpi=300,
    foreground_color="#1a1a1a",
    background_color="#ffffff",
    show_text=True,
    font_family="Courier New",
))

오류 처리

모든 인코드 옵션 검증은 파싱 시점에 수행됩니다. 잘못된 데이터나 호환되지 않는 옵션이 제공되면, 라이브러리는 인코딩이 시작되기 전에 타입이 지정된 예외를 발생시킵니다:

  • InvalidInputError — 데이터에 해당 심볼이 지원하지 않는 문자가 포함되어 있습니다
  • EncodingError — 인코딩 실패 (예: 데이터가 용량을 초과함)
  • SymbologyNotFoundErrorgenerate()에 전달된 인식되지 않은 심볼로지 이름
  • UnsupportedCapabilityError — 이 심볼로지에 대해 요청된 기능을 사용할 수 없습니다

모든 예외 클래스는 BarcodeError을(를) 상속합니다.


빠른 시작

git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .

다양한 인코드 옵션으로 바코드를 생성하고 저장합니다:

import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
    Code128Options, Code128EncodeMode,
    QrOptions, QrErrorCorrectionLevel,
    RenderOptions,
)

# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
    "9876543210",
    encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
    f.write(c128.to_svg())

# QR with high error correction
qr = barcode.qr(
    "https://example.com",
    encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
    f.write(qr.to_png(options=RenderOptions(scale=4.0)))

# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
    f.write(ean.to_svg(options=RenderOptions(
        foreground_color="#003366",
        show_text=True,
    )))

지원되는 형식

Symbology유형옵션 클래스핵심 속성
Code 1281DCode128Optionsencode_mode
Code 391DCode39Optionsfull_ascii, add_check_digit
EAN-131DEan13Optionsallow_check_digit_input
EAN-81DEan8Optionsallow_check_digit_input
QR Code2DQrOptionserror_correction_level, encoding_mode, version, mask
UPC-A1DUpcaOptionsallow_check_digit_input
UPC-E1DUpceOptionsallow_check_digit_input

출력 형식:

형식확장Export
SVG.svg
PNG.png

오픈 소스 및 라이선스

Aspose.BarCode Python용 FOSS는 MIT 라이선스입니다. 소스는 GitHub에서 이용 가능하며; 소스에서 빌드하십시오. 네이티브 종속성 없음, 텔레메트리 없음, 사용 제한 없음.


시작하기

관련 리소스