소개
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_enabled 및 eci_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,.KANJIversion: 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()에 전달하십시오:
| 속성 | 유형 | 설명 |
|---|---|---|
scale | float | 균일 스케일 배수 |
dpi | int | PNG 출력 해상도 |
module_width | float | 바코드 모듈 하나의 너비 |
module_height | float | 바코드 모듈 하나의 높이 |
quiet_zone | float | 바코드 주변의 공백 패딩 |
foreground_color | str | 막대에 대한 Hex 색상 (예: "#000000") |
background_color | str | 배경에 대한 Hex 색상 |
transparent_background | bool | PNG용 투명 배경 |
show_text | bool | 바코드 아래에 사람이 읽을 수 있는 텍스트 표시 |
font_family | str | 사람이 읽을 수 있는 텍스트의 글꼴 |
font_size | float | 인간이 읽을 수 있는 텍스트의 글꼴 크기 |
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— 인코딩 실패 (예: 데이터가 용량을 초과함)SymbologyNotFoundError—generate()에 전달된 인식되지 않은 심볼로지 이름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 128 | 1D | Code128Options | encode_mode |
| Code 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| QR Code | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
출력 형식:
| 형식 | 확장 | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
오픈 소스 및 라이선스
Aspose.BarCode Python용 FOSS는 MIT 라이선스입니다. 소스는 GitHub에서 이용 가능하며; 소스에서 빌드하십시오. 네이티브 종속성 없음, 텔레메트리 없음, 사용 제한 없음.