We zijn blij de release van GroupDocs.Signature for Python v26.10 aan te kondigen, beschikbaar vanaf oktober 2026. Deze grote release werkt de onderliggende GroupDocs.Signature‑engine bij van 25.12 naar 26.9 en migreert de ingebedde .NET‑runtime van .NET Core 3.1 naar .NET 10.0.12. Hij introduceert Python‑stijl callbacks voor preview‑streams, logger, data‑encryptie en ondersteuning voor aangepaste onderteken‑hash, voegt volledige compatibiliteit toe met Python 3.14 en lost kritieke import‑problemen op Linux op. Deze release bevat twee grote functies, vijf verbeteringen en twee bug‑fixes.
Wat is nieuw in deze release
- [Feature] Accepteer Python‑functies als pagina‑ en handtekeningpreview‑callbacks (SIGNATUREPYTHON-21)
- [Feature] Accepteer Python‑objecten als implementaties van
ILogger,IDataEncryptionenICustomSignHash(SIGNATUREPYTHON-22) - [Feature] Voeg ondersteuning toe voor Python 3.14 (SIGNATUREPYTHON-23)
- [Enhancement] Werk de GroupDocs.Signature‑engine bij van 25.12 naar 26.9 (SIGNATUREPYTHON-24)
- [Enhancement] Werk de ingebedde .NET‑runtime bij van .NET Core 3.1 naar .NET 10.0.12 (SIGNATUREPYTHON-25)
- [Enhancement] Gooi
GroupDocsSignatureException,IncorrectPasswordExceptionenPasswordRequiredExceptionin plaats vanRuntimeError(SIGNATUREPYTHON-26) - [Enhancement] Gooi
AttributeErrorwanneer code een attribuut toewijst dat een klasse niet heeft (SIGNATUREPYTHON-27) - [Enhancement] Hernoem leden waarvan de Python‑namen .NET‑woorden splitsen (
z_order→zorder,x_ad_es_type→xad_es_type) (SIGNATUREPYTHON-28) - [Enhancement] Kies overloads op basis van de inhoud van een lijst, en geef
datetime‑ enDecimal‑waarden ongewijzigd door aan .NET (SIGNATUREPYTHON-29) - [Enhancement] Werk de wheel‑platformtags bij naar
manylinux_2_27enmacosx_12_0, en verwijder de 32‑bit Windows‑wheel (SIGNATUREPYTHON-30) - [Fix] De Linux‑wheel kan niet worden geïmporteerd op huidige distributies (SIGNATUREPYTHON-31)
- [Fix]
GROUPDOCS_LIC_PATHwordt genegeerd (SIGNATUREPYTHON-32)
Wijzigingen in de openbare API
Upgraders moeten zich aanpassen aan hernoemde leden, nieuwe exceptietypen en de bijgewerkte platform‑tags. Toewijzingen aan attributen veroorzaken nu AttributeError en callbacks kunnen gewone Python‑callables zijn.
Nieuwe klassen en leden
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: een constructor; die had er geen.PreviewSignatureOptions: een constructor; die had er geen.SearchResult:get_enumerator(),to_list().Signature:dispose().SignatureSettings:default_culture.WordProcessingSaveOptions:ooxml_compliance.
Hernoemd
| Klasse | Oude naam | Nieuwe naam |
|---|---|---|
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 |
Nieuwe functies
Voorbeeldgeneratie met Python-callbacks
PreviewOptions kan nu worden geconstrueerd met gewone Python‑functies. De create‑callback ontvangt een page_data‑object en moet een schrijfbare stream (bestandobject of io.BytesIO) teruggeven. De release‑callback wordt aangeroepen nadat de afbeelding is weggeschreven en ontvangt dezelfde page_data en stream.
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-objecten als logger-, encryptie- en aangepaste hash-callbacks
Gewone Python‑objecten kunnen nu de interfaces ILogger, IDataEncryption en ICustomSignHash implementeren. Een logger‑object met trace, warning en error methoden kan worden doorgegeven aan SignatureSettings. Een encryptie‑object met encode en decode methoden kan worden toegewezen aan options.data_encryption bij QR‑code‑ of metadata‑handtekeningen. Een aangepaste hash‑ondertekenaar kan een functie of een object met een custom_sign_hash‑methode zijn en wordt gebruikt door 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)
Ondersteuning voor Python 3.14
De wheel declareert nu python_requires=">=3.5,<3.15" en één wheel per platform dekt Python 3.5 – 3.14. Er zijn geen code‑aanpassingen nodig; dezelfde import en gebruik werken op de nieuwere interpreter.
Codevoorbeeld
Zie de sectie “Nieuwe functies” hierboven voor werkende code‑voorbeelden die Python‑callbacks voor voorbeeldgeneratie en aangepaste logger‑/encryptie‑implementaties demonstreren.
Hoe de update te verkrijgen
PyPI
Upgrade naar het nieuwste GroupDocs.Signature for Python‑pakket via PyPI: groupdocs-signature-net 26.10.0
Installeer met:
pip install groupdocs-signature-net==26.10.0
Directe download
Download de wheel‑pakketten rechtstreeks van de GroupDocs.Signature for Python v26.10 release‑pagina.