문제 해결 Aspose.BarCode FOSS for Python

문제 해결 Aspose.BarCode FOSS for Python

이 가이드는 Aspose.BarCode FOSS for Python를 사용해 바코드를 생성할 때 가장 흔히 발생하는 오류와 문제를 다룹니다. 각 섹션에서는 오류, 원인, 그리고 해결 방법을 설명합니다.

일반적인 오류

InvalidInputError

InvalidInputError은(는) 인코더에 전달된 데이터가 심볼로지의 문자 집합 또는 길이 요구사항을 충족하지 않을 때 발생합니다.

****전형적인 원인::

  • 숫자 전용 심볼로지에 알파벳 문자를 전달함 (EAN-13, EAN-8, UPC-A, UPC-E)
  • 심볼로지의 고정 길이 요구사항과 일치하지 않는 문자열을 제공함 (예: EAN-13은 정확히 12자리 또는 13자리 숫자를 필요로 함)
  • 심볼로지에서 지원하는 집합 외의 문자를 포함하는 경우 (예: Code 39 기본 모드는 대문자, 숫자 및 일부 특수 문자만 지원합니다)

수정: 호출하기 전에 입력 데이터를 검증하십시오 BarcodeService.generate(). 심볼로지 프로필을 확인하십시오 capabilities and known_limitations 문자 집합 및 길이 제약 조건에 대한 속성.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# EAN-13 requires exactly 12 or 13 digits
data = "590123412345"  # 12 digits — valid
barcode = service.generate("ean13", data)

EncodingError

EncodingError은(는) 입력 검증이 통과된 후 인코더가 내부 오류를 만나면 발생합니다. 이는 InvalidInputError보다 덜 일반적입니다.

****일반적인 원인::

  • 초기 검증을 통과했지만 세그먼트 인코딩 중에 실패하는 데이터 (예: 선택한 오류 정정 수준에 대한 용량을 초과하는 QR Code 데이터)
  • 충돌하는 인코드 옵션 (예: 소문자를 포함하는 데이터로 Code128EncodeMode.CODE_A을 요청하는 경우)

수정: 전달된 인코드 옵션을 검토하십시오 generate(). Code 128의 경우, 사용하십시오 Code128EncodeMode.AUTO 인코더가 최적의 부분집합을 선택하도록 합니다. QR Code의 경우, 더 낮은 값을 시도하십시오 QrErrorCorrectionLevel 또는 데이터 길이를 줄이세요.

from aspose_barcode_foss import BarcodeService, Code128Options, Code128EncodeMode

service = BarcodeService()
options = Code128Options(encode_mode=Code128EncodeMode.AUTO)
barcode = service.generate("code128", "Hello123", encode=options)

SymbologyNotFoundError

SymbologyNotFoundError은 BarcodeService.generate()에 전달된 기호 이름이 SymbologyRegistry에 등록되지 않았을 때 발생합니다.

****일반적인 원인::

  • 잘못된 기호 이름 (예: "code_128" 대신 "code128")
  • 라이브러리에서 지원하지 않는 기호를 사용함 (라이브러리는 Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A, 및 UPC-E만 지원합니다)

수정: 지원되는 7가지 심볼 식별자 중 하나를 사용하십시오: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce". 이름은 대소문자를 구분하지 않지만 등록된 식별자와 일치해야 합니다.

from aspose_barcode_foss import BarcodeService

service = BarcodeService()

# Correct symbology names
barcode = service.generate("code128", "ABC-123")
barcode = service.generate("qrcode", "https://example.com")

RenderingError

RenderingError은 인코딩된 기호에서 출력 생성에 실패했을 때 발생합니다.

****일반적인 원인::

  • 잘못된 RenderOptions 값(예: 음수 scale 또는 module_width)
  • PdfRenderer 사용 시도 (현재 버전에서 PDF 렌더링이 NotImplementedError을 발생시킴)

수정: 사용 SvgRenderer or PngRenderer 대신에 PdfRenderer. 확인하십시오 RenderOptions 속성에 유효한 양수 값이 있습니다.

from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer

service = BarcodeService()
barcode = service.generate("ean13", "590123412345")

options = RenderOptions(scale=2.0, dpi=300)
result = barcode.render(SvgRenderer(), options)

UnsupportedCapabilityError 및 UnsupportedFeatureError

UnsupportedCapabilityError은(는) 심볼로지가 요청된 기능을 지원하지 않을 때 발생합니다(예: GS1 지원이 없는 심볼로지에 대한 GS1 모드). UnsupportedFeatureError은(는) 라이브러리에 구현되지 않은 기능에 대해 발생합니다.

수정: 심볼로지 프로필의 capabilities 속성을 확인하여 어떤 기능을 사용할 수 있는지 확인하십시오. 지원되지 않는 심볼로지에 대해 GS1 모드를 요청하지 마세요.

환경 문제

Python 버전

Aspose.BarCode FOSS는 Python 3.12 이상이 필요합니다. SyntaxError 또는 import 실패가 보이면, Python 버전을 확인하십시오:

python --version

설치 문제

패키지를 소스에서 빌드하십시오.

이 라이브러리는 네이티브 종속성이 없는 순수 Python입니다. 설치는 성공했지만 import가 실패한다면, aspose_barcode_foss.py라는 로컬 파일이 패키지를 가리고 있지 않은지 확인하십시오.

Import 오류

올바른 import는 다음과 같습니다:

import aspose_barcode_foss

또는 특정 클래스를 import하십시오:

from aspose_barcode_foss import BarcodeService, RenderOptions

자주 묻는 질문

내 EAN-13 바코드가 입력한 번호와 다른 번호를 표시하는 이유는 무엇인가요?

EAN-13는 자동으로 체크 디지털을 계산합니다. 12자리 숫자를 전달하면 13번째 자리가 추가됩니다. 13자리 숫자를 전달하면 마지막 자리가 체크 디지털로 검증됩니다. 이 동작을 제어하려면 Ean13Options allow_check_digit_input 속성을 사용하세요.

PDF 출력에서 NotImplementedError가 발생하는 이유는 무엇인가요?

PdfRenderer.render()와 Barcode.to_pdf()은 아직 구현되지 않았습니다. 대신 Barcode.to_svg() 또는 Barcode.to_png()을 사용하거나, SvgRenderer 또는 PngRenderer로 직접 렌더링하세요.

사용 가능한 심볼로지 이름을 어떻게 디버깅하나요?

SymbologyRegistry.get_definition()를 사용하여 심볼로지가 등록되어 있는지 확인합니다. SymbologyNotFoundError가 발생하면 해당 심볼로지는 사용할 수 없습니다. 지원되는 일곱 가지 심볼로지는 다음과 같습니다: Code 128, Code 39, EAN-13, EAN-8, QR Code, UPC-A, 및 UPC-E.

참조

 한국어