Wir freuen uns, die Veröffentlichung von GroupDocs.Signature for Python v26.10 bekannt zu geben, verfügbar seit Oktober 2026. Dieses Hauptrelease aktualisiert die zugrunde liegende GroupDocs.Signature‑Engine von 25.12 auf 26.9 und migriert die eingebettete .NET‑Runtime von .NET Core 3.1 auf .NET 10.0.12. Es führt Python‑artige Callbacks für Vorschau‑Streams, Logger, Datenverschlüsselung und benutzerdefinierte Signatur‑Hash‑Unterstützung ein, bietet volle Kompatibilität mit Python 3.14 und behebt kritische Import‑Probleme unter Linux. Dieses Release enthält zwei Hauptfunktionen, fünf Verbesserungen und zwei Fehlerbehebungen.
Was ist neu in diesem Release
- [Feature] Akzeptieren Sie Python‑Funktionen als Seiten‑ und Signatur‑Vorschau‑Callbacks (SIGNATUREPYTHON-21)
- [Feature] Akzeptieren Sie Python‑Objekte als Implementierungen von
ILogger,IDataEncryptionundICustomSignHash(SIGNATUREPYTHON-22) - [Feature] Unterstützung für Python 3.14 hinzufügen (SIGNATUREPYTHON-23)
- [Enhancement] Aktualisierung der GroupDocs.Signature‑Engine von 25.12 auf 26.9 (SIGNATUREPYTHON-24)
- [Enhancement] Aktualisierung der eingebetteten .NET‑Runtime von .NET Core 3.1 auf .NET 10.0.12 (SIGNATUREPYTHON-25)
- [Enhancement] Werfen von
GroupDocsSignatureException,IncorrectPasswordExceptionundPasswordRequiredExceptionanstelle vonRuntimeError(SIGNATUREPYTHON-26) - [Enhancement] Werfen von
AttributeError, wenn Code ein Attribut zuweist, das die Klasse nicht besitzt (SIGNATUREPYTHON-27) - [Enhancement] Umbenennen von Mitgliedern, deren Python‑Namen .NET‑Wörter trennen (
z_order→zorder,x_ad_es_type→xad_es_type) (SIGNATUREPYTHON-28) - [Enhancement] Auswahl von Überladungen anhand des Inhalts einer Liste und unveränderte Übergabe von
datetime‑ undDecimal‑Werten an .NET (SIGNATUREPYTHON-29) - [Enhancement] Aktualisierung der Wheel‑Plattform‑Tags zu
manylinux_2_27undmacosx_12_0sowie Weglassen des 32‑Bit‑Windows‑Wheels (SIGNATUREPYTHON-30) - [Fix] Das Linux‑Wheel kann auf aktuellen Distributionen nicht importiert werden (SIGNATUREPYTHON-31)
- [Fix]
GROUPDOCS_LIC_PATHwird ignoriert (SIGNATUREPYTHON-32)
Änderungen an der öffentlichen API
Aufrüstende müssen sich an umbenannte Mitglieder, neue Ausnahmetypen und die aktualisierten Plattform‑Tags anpassen. Attributzuweisungen werfen nun AttributeError und Callbacks können einfache Python‑Callables sein.
Neue Klassen und Mitglieder
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: ein Konstruktor; vorher keiner.PreviewSignatureOptions: ein Konstruktor; vorher keiner.SearchResult:get_enumerator(),to_list().Signature:dispose().SignatureSettings:default_culture.WordProcessingSaveOptions:ooxml_compliance.
Umbenannt
| Klasse | Alter Name | Neuer Name |
|---|---|---|
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 |
Neue Funktionen
Vorschau‑Erstellung mit Python‑Callbacks
PreviewOptions können jetzt mit einfachen Python‑Funktionen konstruiert werden. Der create‑Callback erhält ein page_data‑Objekt und muss einen beschreibbaren Stream (Dateiobjekt oder io.BytesIO) zurückgeben. Der release‑Callback wird nach dem Schreiben des Bildes aufgerufen und erhält dieselben page_data und den 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‑Objekte als Logger, Verschlüsselung und benutzerdefinierte Hash‑Callbacks
Einfache Python‑Objekte können nun die Schnittstellen ILogger, IDataEncryption und ICustomSignHash implementieren. Ein Logger‑Objekt mit den Methoden trace, warning und error kann an SignatureSettings übergeben werden. Ein Verschlüsselungs‑Objekt mit den Methoden encode und decode kann options.data_encryption bei QR‑Code‑ oder Metadaten‑Signaturen zugewiesen werden. Ein benutzerdefinierter Hash‑Signer kann eine Funktion oder ein Objekt mit einer custom_sign_hash‑Methode sein und wird von DigitalSignOptions.custom_sign_hash verwendet.
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)
Unterstützung für Python 3.14
Das Wheel deklariert jetzt python_requires=">=3.5,<3.15" und ein einzelnes Wheel pro Plattform deckt Python 3.5 – 3.14 ab. Keine Code‑Änderungen sind erforderlich; derselbe Import und dieselbe Nutzung funktionieren mit dem neueren Interpreter.
Code‑Beispiel
Siehe den Abschnitt „Neue Funktionen“ oben für funktionierende Code‑Beispiele, die Python‑Callbacks für die Vorschau‑Erstellung sowie benutzerdefinierte Logger‑/Verschlüsselungs‑Implementierungen demonstrieren.
Wie Sie das Update erhalten
PyPI
Aktualisieren Sie das neueste GroupDocs.Signature for Python‑Paket über PyPI: groupdocs-signature-net 26.10.0
Installation mit:
pip install groupdocs-signature-net==26.10.0
Direkter Download
Laden Sie die Wheel‑Pakete direkt von der GroupDocs.Signature for Python v26.10 Release‑Seite herunter.