우리는 GroupDocs.Signature for Python v26.10의 릴리스를 기쁘게 발표합니다. 이 릴리스는 2026년 10월부터 이용 가능합니다. 이번 주요 릴리스에서는 기본 GroupDocs.Signature 엔진을 25.12에서 26.9로 업그레이드하고, 내장된 .NET 런타임을 .NET Core 3.1에서 .NET 10.0.12로 마이그레이션했습니다. 미리보기 스트림, 로거, 데이터 암호화 및 사용자 정의 서명 해시 지원을 위한 Python 스타일 콜백을 도입했으며, Python 3.14와의 완전 호환성을 추가하고 Linux에서 발생하던 중요한 import 문제를 해결했습니다. 이번 릴리스에는 두 가지 주요 기능, 다섯 가지 개선 사항, 두 가지 버그 수정이 포함됩니다.

이번 릴리스의 새로운 기능

  • [Feature] 페이지 및 서명 미리보기 콜백으로 Python 함수를 허용합니다 (SIGNATUREPYTHON-21)
  • [Feature] ILogger, IDataEncryption 및 ICustomSignHash 구현으로 Python 객체를 허용합니다 (SIGNATUREPYTHON-22)
  • [Feature] Python 3.14 지원을 추가합니다 (SIGNATUREPYTHON-23)
  • [Enhancement] GroupDocs.Signature 엔진을 25.12에서 26.9로 업데이트합니다 (SIGNATUREPYTHON-24)
  • [Enhancement] 내장 .NET 런타임을 .NET Core 3.1에서 .NET 10.0.12로 업데이트합니다 (SIGNATUREPYTHON-25)
  • [Enhancement] RuntimeError 대신 GroupDocsSignatureException, IncorrectPasswordException, PasswordRequiredException을 발생시킵니다 (SIGNATUREPYTHON-26)
  • [Enhancement] 코드가 클래스에 존재하지 않는 속성을 할당할 경우 AttributeError를 발생시킵니다 (SIGNATUREPYTHON-27)
  • [Enhancement] Python 이름이 .NET 단어를 분리하던 멤버를 이름 변경 (z_order → zorder, x_ad_es_type → xad_es_type) (SIGNATUREPYTHON-28)
  • [Enhancement] 리스트 내용에 따라 오버로드를 선택하고 datetime 및 Decimal 값을 .NET에 그대로 전달합니다 (SIGNATUREPYTHON-29)
  • [Enhancement] 휠 플랫폼 태그를 manylinux_2_27 및 macosx_12_0으로 업데이트하고 32비트 Windows 휠을 제외합니다 (SIGNATUREPYTHON-30)
  • [Fix] 현재 배포판에서 Linux 휠을 import할 수 없는 문제를 해결했습니다 (SIGNATUREPYTHON-31)
  • [Fix] GROUPDOCS_LIC_PATH가 무시되는 문제를 해결했습니다 (SIGNATUREPYTHON-32)

공개 API 변경 사항

업그레이드하는 사용자는 이름이 변경된 멤버, 새로운 예외 유형 및 업데이트된 플랫폼 태그에 맞게 코드를 조정해야 합니다. 속성 할당 시 이제 AttributeError가 발생하고, 콜백은 일반 Python 호출 가능 객체가 될 수 있습니다.

새로운 클래스 및 멤버

  • groupdocs.signature: ProcessCompleteEventHandler, ProcessProgressEventHandler, ProcessStartEventHandler.
  • groupdocs.signature.domain: OoxmlCompliance.
  • groupdocs.signature.options: CreateSignatureStream, ReleaseSignatureStream, PreviewOptions.CreateDocPageStream, PreviewOptions.ReleaseDocPageStream, PreviewOptions.PreviewFormats, PreviewSignatureOptions.PreviewFormats.
  • ConsoleLogger: error().
  • DigitalSignOptions: allow_expired, allow_not_yet_valid.
  • DigitalSignature: certificate_store_location, certificate_store_name.
  • FileLogger: error().
  • ILogger: error().
  • ImageSignOptions: dispose().
  • LoadOptions: skip_external_resources, whitelisted_resources.
  • Mailmark2D: class_.
  • MetadataSignatureCollection: append(), get().
  • PreviewOptions: 생성자; 이전에 없었습니다.
  • PreviewSignatureOptions: 생성자; 이전에 없었습니다.
  • SearchResult: get_enumerator(), to_list().
  • Signature: dispose().
  • SignatureSettings: default_culture.
  • WordProcessingSaveOptions: ooxml_compliance.

이름 변경

클래스 이전 이름 새 이름
BarcodeTypes DATA_LOGIC_2OF_5 DATA_LOGIC_2OF5
BarcodeTypes GS1_CODE_128 GS1_CODE128
BarcodeTypes GS1_MICRO_PDF_417 GS1_MICRO_PDF417
BarcodeTypes IATA2OF_5 IATA2OF5
BarcodeTypes INTERLEAVED_2OF_5 INTERLEAVED_2OF5
BarcodeTypes MATRIX_2OF_5 MATRIX_2OF5
BarcodeTypes STANDARD_2OF_5 STANDARD_2OF5
BarcodeTypes UPCA_GS_1_CODE_128_COUPON UPCA_GS1_CODE_128_COUPON
BarcodeTypes UPCA_GS_1_DATABAR_COUPON UPCA_GS1_DATABAR_COUPON
DigitalSignature x_ad_es_type xad_es_type
FileType G_ZIP GZIP
FileType L_ZIP LZIP
XAdESType X_AD_ES XAD_ES
DigitalSignOptions x_ad_es_type xad_es_type
JpegCompressionColorMode Y_CB_CR YCB_CR
SignOptions z_order zorder
PdfTextAnnotationAppearance h_corner_radius hcorner_radius
PdfTextAnnotationAppearance v_corner_radius vcorner_radius

새로운 기능

Python 콜백을 이용한 미리보기 생성

PreviewOptions를 이제 일반 Python 함수로 구성할 수 있습니다. create 콜백은 page_data 객체를 받아 쓰기 가능한 스트림(파일 객체 또는 io.BytesIO)을 반환해야 합니다. release 콜백은 이미지가 기록된 후 호출되며 동일한 page_data와 스트림을 받습니다.

from groupdocs.signature import Signature
from groupdocs.signature.options import PreviewOptions

def create_page_stream(page_data):
    return open(f"page-{page_data.page_number}.png", "wb")

def release_page_stream(page_data, page_stream):
    page_stream.close()

with Signature("document.pdf") as signature:
    signature.generate_preview(PreviewOptions(create_page_stream, release_page_stream))

로거, 암호화 및 사용자 정의 해시 콜백으로 Python 객체 사용

일반 Python 객체가 이제 ILogger, IDataEncryption, ICustomSignHash 인터페이스를 구현할 수 있습니다. trace, warning, error 메서드를 가진 로거 객체를 SignatureSettings에 전달할 수 있습니다. encode와 decode 메서드를 가진 암호화 객체를 QR 코드 또는 메타데이터 서명의 options.data_encryption에 할당할 수 있습니다. 사용자 정의 해시 서명자는 함수이거나 custom_sign_hash 메서드를 가진 객체일 수 있으며 DigitalSignOptions.custom_sign_hash에서 사용됩니다.

import base64

from groupdocs.signature import Signature, SignatureSettings
from groupdocs.signature.options import QrCodeSignOptions


class SimpleLogger:
    def trace(self, message):
        print("TRACE:", message)

    def warning(self, message):
        print("WARN:", message)

    def error(self, message, exception=None):
        print("ERROR:", message, exception)


class Base64Encryption:
    def encode(self, source):
        return base64.b64encode(source.encode()).decode()

    def decode(self, source):
        return base64.b64decode(source).decode()


options = QrCodeSignOptions("Private text")
options.data_encryption = Base64Encryption()

with Signature("document.pdf", SignatureSettings(logger=SimpleLogger())) as signature:
    signature.sign("signed.pdf", options)

Python 3.14 지원

휠은 이제 python_requires=">=3.5,<3.15"를 선언하며, 플랫폼당 하나의 휠이 Python 3.5‑3.14를 모두 포괄합니다. 코드 변경 없이 동일한 import와 사용법으로 최신 인터프리터에서도 동작합니다.

코드 예시

위 “새로운 기능” 섹션에 있는 예시 코드를 참고하면, 미리보기 생성 및 사용자 정의 로거/암호화 구현을 위한 Python 콜백 사용 방법을 확인할 수 있습니다.

업데이트 받는 방법

PyPI

PyPI를 통해 최신 GroupDocs.Signature for Python 패키지로 업그레이드하십시오: groupdocs-signature-net 26.10.0

설치 명령:

pip install groupdocs-signature-net==26.10.0

직접 다운로드

GroupDocs.Signature for Python v26.10 릴리스 페이지에서 휠 패키지를 직접 다운로드하십시오.

리소스