우리는 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 릴리스 페이지에서 휠 패키지를 직접 다운로드하십시오.