인코드 옵션 사용하기
인코드 옵션 작업
각 바코드 심볼로지는 Aspose.BarCode FOSS for Python에서 전용 옵션 클래스를 가지고 있으며, 이 클래스는 인코딩 동작을 제어합니다. 모든 옵션 클래스는 EncodeOptions를 상속하며, EncodeOptions는 심볼로지 전반에 걸쳐 공유되는 gs1_enabled 및 eci_assignment_number 속성을 제공합니다.
Code128Options
Code128Options는 인코더가 선택하는 Code 128 문자 집합을 제어합니다. encode_mode 속성은 Code128EncodeMode 열거형 값을 허용합니다.
| Mode | 설명 |
|---|---|
AUTO | 가장 압축된 인코딩을 자동으로 선택합니다 |
CODE_A | 대문자, 숫자 및 제어 문자 |
CODE_B | 대문자, 소문자 및 숫자 |
CODE_C | 숫자 쌍 — 숫자 전용 데이터에 최적화됨 |
CODE_AB | Code A와 Code B 사이를 전환합니다 |
CODE_AC | Code A와 Code C 사이를 전환합니다 |
CODE_BC | Code B와 Code C 사이를 전환합니다 |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
# AUTO mode — library picks the most compact encoding
bc_auto = barcode.code128("ABC123", encode=Code128Options(encode_mode=Code128EncodeMode.AUTO))
# CODE_C mode — compact encoding for digit-only data
bc_c = barcode.code128("9876543210", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C))
# CODE_B mode — full alphanumeric support
bc_b = barcode.code128("Hello World", encode=Code128Options(encode_mode=Code128EncodeMode.CODE_B))Code39Options
Code39Options는 인코더가 기본 43문자 집합을 사용할지 전체 ASCII 확장을 사용할지를 제어합니다.
| 속성 | 유형 | Default | 설명 |
|---|---|---|---|
full_ascii | bool | None | 전체 ASCII 모드 활성화 (시프트 페어를 통한 128자 범위) |
add_check_digit | bool | None | 모듈로-43 체크 디지털을 추가합니다 |
from aspose_barcode_foss import Code39Options
# Base mode — uppercase letters, digits, and a few special characters
bc_base = barcode.code39("CODE 39")
# Full ASCII mode — encodes the full 128-character ASCII range
bc_full = barcode.code39(
"Hello, World!",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)QrOptions
QrOptions은 모든 심볼 중 가장 많은 설정 범위를 가지고 있습니다.
| 속성 | 유형 | Values |
|---|---|---|
error_correction_level | QrErrorCorrectionLevel | L (7%), M (15%), Q (25%), H (30%) |
encoding_mode | QrEncodeMode | AUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI |
version | int | 1–40 (심볼 차원을 제어) |
mask | int | 0–7 (수동 마스크 패턴 선택) |
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
# High error correction with byte encoding
bc = barcode.qr(
"https://example.com",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.H,
encoding_mode=QrEncodeMode.BYTE,
),
)
# Numeric mode for digit-only data — most compact QR
bc_num = barcode.qr(
"0123456789",
encode=QrOptions(encoding_mode=QrEncodeMode.NUMERIC),
)
# Explicit version and mask
bc_v5 = barcode.qr(
"TEST",
encode=QrOptions(version=5, mask=3),
)Ean13Options
Ean13Options은 EAN-13 바코드의 체크 디짓 처리를 제어합니다.
| 속성 | 유형 | Default | 설명 |
|---|---|---|---|
allow_check_digit_input | bool | None | 사전 계산된 검증 숫자가 포함된 13자리 입력을 허용합니다 |
from aspose_barcode_foss import Ean13Options
# 12 digits — library computes the 13th check digit
bc = barcode.ean13("590123412345")
# 13 digits — library validates the provided check digit
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)Ean8Options
Ean8Options은 Ean13Options과 동일하게 동작하지만 8자리 EAN 바코드에 적용됩니다. 페이로드 숫자 7개를 제공하면(라이브러리가 8번째를 계산함) 또는 8자리 입력을 위해 allow_check_digit_input=True를 설정하십시오.
from aspose_barcode_foss import Ean8Options
bc = barcode.ean8("1234567")
bc2 = barcode.ean8("12345670", encode=Ean8Options(allow_check_digit_input=True))UpcaOptions 및 UpceOptions
UpcaOptions와 UpceOptions은 EAN 옵션과 동일한 allow_check_digit_input 패턴을 따릅니다. UpceOptions 또한 number_system 속성을 가지고 있습니다.
from aspose_barcode_foss import UpcaOptions, UpceOptions
# UPC-A: 11 digits, library adds check digit
bc_a = barcode.upca("01234567890")
# UPC-E with pre-computed check digit
bc_e = barcode.upce(
"01234565",
encode=UpceOptions(allow_check_digit_input=True),
)EncodeOptions 기본 속성
모든 옵션 클래스는 EncodeOptions로부터 이러한 속성을 상속합니다:
| 속성 | 유형 | 설명 |
|---|---|---|
gs1_enabled | `bool | None` |
eci_assignment_number | `int | None` |
팁 및 모범 사례
Code128EncodeMode.AUTO를 사용하세요, 문자 집합을 제한해야 할 특별한 이유가 없는 한 — 이는 모든 입력에 대해 가장 짧은 바코드를 생성합니다.- 손상되기 쉬운 표면에 인쇄될 QR 코드에 대해
QrErrorCorrectionLevel.H를 설정하세요. - 기본적으로 라이브러리가 체크 디지트를 계산하도록 두세요 — 다른 시스템에서 사전 검증된 데이터를 받을 때만
allow_check_digit_input=True를 설정합니다. - 숫자 전용 QR 데이터에 대해
QrEncodeMode.NUMERIC를 사용하여 심볼 크기를 최소화하세요.
공통 문제
| 문제 | 원인 | 해결책 |
|---|---|---|
InvalidInputError에 Code 39 | 입력에 소문자가 포함되어 있습니다 | Code39Options에 full_ascii=True을 설정합니다. |
| QR code가 너무 큽니다 | 데이터 길이에 비해 버전 설정이 너무 낮습니다 | 명시적인 version를 제거하거나 늘리세요 |
| 잘못된 체크 디지트 EAN-13 | 13자리 입력에 allow_check_digit_input=True이 없습니다 | 12자리(자동) 입력하거나 옵션을 True로 설정하십시오 |
SymbologyNotFoundError | generate()에 잘못된 심볼로지 이름 | 다음 중 하나를 사용하십시오: code128, code39, ean13, ean8, qr, upca, upce |