Jsme rádi, že můžeme oznámit vydání GroupDocs.Signature for Python v26.10, dostupné od října 2026. Toto hlavní vydání aktualizuje podkladový motor GroupDocs.Signature z 25.12 na 26.9 a migruje vestavěné .NET runtime z .NET Core 3.1 na .NET 10.0.12. Přináší Python‑stylové callbacky pro preview streamy, logger, šifrování dat a podporu vlastního hash podpisu, přidává plnou kompatibilitu s Python 3.14 a řeší kritické problémy s importem na Linuxu. Toto vydání obsahuje dvě hlavní funkce, pět vylepšení a dva opravy chyb.
Co je nového v tomto vydání
- [Feature] Přijímat Python funkce jako callbacky pro náhled stránky a podpisu (SIGNATUREPYTHON-21)
- [Feature] Přijímat Python objekty jako implementace
ILogger,IDataEncryptionaICustomSignHash(SIGNATUREPYTHON-22) - [Feature] Přidat podporu pro Python 3.14 (SIGNATUREPYTHON-23)
- [Enhancement] Aktualizovat motor GroupDocs.Signature z 25.12 na 26.9 (SIGNATUREPYTHON-24)
- [Enhancement] Aktualizovat vestavěné .NET runtime z .NET Core 3.1 na .NET 10.0.12 (SIGNATUREPYTHON-25)
- [Enhancement] Vyhazovat
GroupDocsSignatureException,IncorrectPasswordExceptionaPasswordRequiredExceptionmístoRuntimeError(SIGNATUREPYTHON-26) - [Enhancement] Vyhazovat
AttributeError, když kód přiřadí atribut, který třída nemá (SIGNATUREPYTHON-27) - [Enhancement] Přejmenovat členy, jejichž Python názvy rozdělují .NET slova (
z_order→zorder,x_ad_es_type→xad_es_type) (SIGNATUREPYTHON-28) - [Enhancement] Volit přetížení podle obsahu seznamu a předávat hodnoty
datetimeaDecimaldo .NET beze změny (SIGNATUREPYTHON-29) - [Enhancement] Aktualizovat značky platformy wheel na
manylinux_2_27amacosx_12_0a zrušit 32‑bitový Windows wheel (SIGNATUREPYTHON-30) - [Fix] Linux wheel nelze importovat na současných distribucích (SIGNATUREPYTHON-31)
- [Fix]
GROUPDOCS_LIC_PATHje ignorována (SIGNATUREPYTHON-32)
Změny veřejného API
Upgradery musí upravit přejmenované členy, nové typy výjimek a aktualizované značky platformy. Přiřazení atributů nyní vyhazuje AttributeError a callbacky mohou být obyčejné Python volatelné objekty.
Nové třídy a členové
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: konstruktor; dříve žádný.PreviewSignatureOptions: konstruktor; dříve žádný.SearchResult:get_enumerator(),to_list().Signature:dispose().SignatureSettings:default_culture.WordProcessingSaveOptions:ooxml_compliance.
Přejmenováno
| Třída | Starý název | Nový název |
|---|---|---|
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 |
Nové funkce
Generování náhledu s Python callbacky
PreviewOptions lze nyní vytvořit s obyčejnými Python funkcemi. Callback create přijímá objekt page_data a musí vrátit zapisovatelný stream (souborový objekt nebo io.BytesIO). Callback release je volán po zapsání obrázku a přijímá stejný page_data i 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 objekty jako logger, šifrování a callbacky pro vlastní hash
Obyčejné Python objekty nyní mohou implementovat rozhraní ILogger, IDataEncryption a ICustomSignHash. Objekt loggeru s metodami trace, warning a error lze předat do SignatureSettings. Objekt šifrování s metodami encode a decode lze přiřadit k options.data_encryption u QR‑code nebo metadata podpisů. Vlastní hash signer může být funkce nebo objekt s metodou custom_sign_hash a používá se v 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)
Podpora pro Python 3.14
Wheel nyní deklaruje python_requires=">=3.5,<3.15" a jeden wheel na platformu pokrývá Python 3.5 – 3.14. Žádné změny kódu nejsou potřeba; stejný import a použití funguje i na novějším interpreteru.
Příklad kódu
Viz sekce „Nové funkce“ výše pro funkční ukázky kódu demonstrující Python callbacky pro generování náhledu a vlastní implementace loggeru/šifrování.
Jak získat aktualizaci
PyPI
Upgradujte na nejnovější balíček GroupDocs.Signature for Python přes PyPI: groupdocs-signature-net 26.10.0
Instalace:
pip install groupdocs-signature-net==26.10.0
Přímé stažení
Stáhněte si wheel balíčky přímo ze stránky vydání GroupDocs.Signature for Python v26.10.