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, IDataEncryption en ICustomSignHash (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, IncorrectPasswordException en PasswordRequiredException in plaats van RuntimeError (SIGNATUREPYTHON-26)
  • [Enhancement] Gooi AttributeError wanneer 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‑ en Decimal‑waarden ongewijzigd door aan .NET (SIGNATUREPYTHON-29)
  • [Enhancement] Werk de wheel‑platformtags bij naar manylinux_2_27 en macosx_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_PATH wordt 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.

Bronnen