인코드 옵션 사용하기

인코드 옵션 사용하기

인코드 옵션 작업

각 바코드 심볼로지는 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_ABCode A와 Code B 사이를 전환합니다
CODE_ACCode A와 Code C 사이를 전환합니다
CODE_BCCode 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_asciiboolNone전체 ASCII 모드 활성화 (시프트 페어를 통한 128자 범위)
add_check_digitboolNone모듈로-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_levelQrErrorCorrectionLevelL (7%), M (15%), Q (25%), H (30%)
encoding_modeQrEncodeModeAUTO, NUMERIC, ALPHANUMERIC, BYTE, KANJI
versionint1–40 (심볼 차원을 제어)
maskint0–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_inputboolNone사전 계산된 검증 숫자가 포함된 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`boolNone`
eci_assignment_number`intNone`

팁 및 모범 사례

  • Code128EncodeMode.AUTO를 사용하세요, 문자 집합을 제한해야 할 특별한 이유가 없는 한 — 이는 모든 입력에 대해 가장 짧은 바코드를 생성합니다.
  • 손상되기 쉬운 표면에 인쇄될 QR 코드에 대해 QrErrorCorrectionLevel.H를 설정하세요.
  • 기본적으로 라이브러리가 체크 디지트를 계산하도록 두세요 — 다른 시스템에서 사전 검증된 데이터를 받을 때만 allow_check_digit_input=True를 설정합니다.
  • 숫자 전용 QR 데이터에 대해 QrEncodeMode.NUMERIC를 사용하여 심볼 크기를 최소화하세요.

공통 문제

문제원인해결책
InvalidInputError에 Code 39입력에 소문자가 포함되어 있습니다Code39Options에 full_ascii=True을 설정합니다.
QR code가 너무 큽니다데이터 길이에 비해 버전 설정이 너무 낮습니다명시적인 version를 제거하거나 늘리세요
잘못된 체크 디지트 EAN-1313자리 입력에 allow_check_digit_input=True이 없습니다12자리(자동) 입력하거나 옵션을 True로 설정하십시오
SymbologyNotFoundErrorgenerate()에 잘못된 심볼로지 이름다음 중 하나를 사용하십시오: code128, code39, ean13, ean8, qr, upca, upce

참조

 한국어