Ми раді оголосити про випуск GroupDocs.Signature for Python v26.10, доступний з жовтня 2026. Це велике оновлення оновлює базовий движок GroupDocs.Signature з 25.12 до 26.9 та переносить вбудовану .NET‑runtime з .NET Core 3.1 до .NET 10.0.12. Воно вводить колбеки у стилі Python для потоків попереднього перегляду, логера, шифрування даних та підтримки користувацького підпису хешу, додає повну сумісність з Python 3.14 і вирішує критичні проблеми імпорту в Linux. У цьому випуску два основних функціональних оновлення, п’ять покращень і два виправлення помилок.
Що нового у цьому випуску
- [Feature] Приймати функції Python як колбеки попереднього перегляду сторінок та підпису (SIGNATUREPYTHON-21)
- [Feature] Приймати об’єкти Python як реалізації
ILogger,IDataEncryptionтаICustomSignHash(SIGNATUREPYTHON-22) - [Feature] Додати підтримку Python 3.14 (SIGNATUREPYTHON-23)
- [Enhancement] Оновити движок GroupDocs.Signature з 25.12 до 26.9 (SIGNATUREPYTHON-24)
- [Enhancement] Оновити вбудовану .NET‑runtime з .NET Core 3.1 до .NET 10.0.12 (SIGNATUREPYTHON-25)
- [Enhancement] Піднімати
GroupDocsSignatureException,IncorrectPasswordExceptionтаPasswordRequiredExceptionзамістьRuntimeError(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 не можна імпортувати у поточних дистрибутивах (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 можна призначити options.data_encryption у підписах QR‑code або метаданих. Користувацький підписувач хешу може бути функцією або об’єктом з методом 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. Змін у коді не потрібно; той самий імпорт і використання працюватимуть у новішому інтерпретаторі.
Приклад коду
Дивіться розділ «Нові функції» вище для робочих прикладів коду, що демонструють Python‑колбеки для генерації попереднього перегляду та реалізації користувацького логера/шифрування.
Як отримати оновлення
PyPI
Оновіть до останньої версії пакету GroupDocs.Signature for Python через PyPI: groupdocs-signature-net 26.10.0
Встановити за допомогою:
pip install groupdocs-signature-net==26.10.0
Пряме завантаження
Завантажте колеса безпосередньо зі сторінки випуску GroupDocs.Signature for Python v26.10.