Estamos felizes em anunciar o lançamento do GroupDocs.Signature for Python v26.10, disponível a partir de outubro de 2026. Esta versão principal atualiza o mecanismo subjacente do GroupDocs.Signature de 25.12 para 26.9 e migra o runtime .NET incorporado de .NET Core 3.1 para .NET 10.0.12. Ela introduz callbacks no estilo Python para fluxos de pré‑visualização, logger, criptografia de dados e suporte a hash de assinatura personalizado, adiciona compatibilidade total com Python 3.14 e resolve problemas críticos de importação em Linux. Esta versão inclui duas funcionalidades principais, cinco aprimoramentos e duas correções de bugs.

O que há de novo nesta versão

  • [Feature] Aceitar funções Python como callbacks de pré‑visualização de página e assinatura (SIGNATUREPYTHON-21)
  • [Feature] Aceitar objetos Python como implementações de ILogger, IDataEncryption e ICustomSignHash (SIGNATUREPYTHON-22)
  • [Feature] Adicionar suporte ao Python 3.14 (SIGNATUREPYTHON-23)
  • [Enhancement] Atualizar o mecanismo GroupDocs.Signature de 25.12 para 26.9 (SIGNATUREPYTHON-24)
  • [Enhancement] Atualizar o runtime .NET incorporado de .NET Core 3.1 para .NET 10.0.12 (SIGNATUREPYTHON-25)
  • [Enhancement] Lançar GroupDocsSignatureException, IncorrectPasswordException e PasswordRequiredException em vez de RuntimeError (SIGNATUREPYTHON-26)
  • [Enhancement] Lançar AttributeError quando o código atribui um atributo que a classe não possui (SIGNATUREPYTHON-27)
  • [Enhancement] Renomear membros cujos nomes Python dividem palavras .NET (z_order → zorder, x_ad_es_type → xad_es_type) (SIGNATUREPYTHON-28)
  • [Enhancement] Escolher sobrecargas pelo conteúdo de uma lista e passar valores datetime e Decimal para .NET sem alterações (SIGNATUREPYTHON-29)
  • [Enhancement] Atualizar as tags de plataforma da wheel para manylinux_2_27 e macosx_12_0, e remover a wheel Windows de 32 bits (SIGNATUREPYTHON-30)
  • [Fix] A wheel Linux não pode ser importada nas distribuições atuais (SIGNATUREPYTHON-31)
  • [Fix] GROUPDOCS_LIC_PATH é ignorado (SIGNATUREPYTHON-32)

Alterações na API pública

Os usuários que atualizam precisam adaptar‑se a membros renomeados, novos tipos de exceção e às tags de plataforma atualizadas. Atribuições de atributos agora lançam AttributeError e os callbacks podem ser funções Python simples.

Novas classes e membros

  • 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: um construtor; antes não existia.
  • PreviewSignatureOptions: um construtor; antes não existia.
  • SearchResult: get_enumerator(), to_list().
  • Signature: dispose().
  • SignatureSettings: default_culture.
  • WordProcessingSaveOptions: ooxml_compliance.

Renomeados

Classe Nome antigo Nome novo
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

Novos recursos

Geração de pré‑visualização com callbacks Python

PreviewOptions agora pode ser construído com funções Python simples. O callback create recebe um objeto page_data e deve retornar um fluxo gravável (objeto de arquivo ou io.BytesIO). O callback release é chamado após a imagem ser escrita e recebe o mesmo page_data e o fluxo.

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))

Objetos Python como logger, criptografia e callbacks de hash personalizado

Objetos Python simples podem agora implementar as interfaces ILogger, IDataEncryption e ICustomSignHash. Um objeto logger com métodos trace, warning e error pode ser passado para SignatureSettings. Um objeto de criptografia com métodos encode e decode pode ser atribuído a options.data_encryption em assinaturas de QR‑code ou metadados. Um assinador de hash personalizado pode ser uma função ou um objeto com método custom_sign_hash e é usado por 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)

Suporte ao Python 3.14

A wheel agora declara python_requires=">=3.5,<3.15" e uma única wheel por plataforma cobre Python 3.5 – 3.14. Nenhuma alteração de código é necessária; a mesma importação e uso funcionam no interpretador mais recente.

Exemplo de código

Veja a seção “Novos recursos” acima para exemplos de código funcionais que demonstram callbacks Python para geração de pré‑visualização e implementações personalizadas de logger/criptografia.

Como obter a atualização

PyPI

Atualize para o pacote mais recente do GroupDocs.Signature for Python via PyPI: groupdocs-signature-net 26.10.0

Instalar com:

pip install groupdocs-signature-net==26.10.0

Download direto

Baixe os pacotes wheel diretamente da página de lançamento do GroupDocs.Signature for Python v26.10.

Recursos