ما خوشحالیم که انتشار GroupDocs.Signature for Python v26.10 را اعلام می‌کنیم، که از اکتبر 2026 در دسترس است. این انتشار بزرگ، موتور زیرساخت GroupDocs.Signature را از 25.12 به 26.9 ارتقا می‌دهد و زمان‌اجرای .NET جاسازی‌شده را از .NET Core 3.1 به .NET 10.0.12 منتقل می‌کند. این نسخه، فراخوانی‌های سبک پایتون برای جریان‌های پیش‌نمایش، لاگر، رمزنگاری داده‌ها و پشتیبانی از هش سفارشی امضا را معرفی می‌کند، سازگاری کامل با Python 3.14 را اضافه می‌کند و مشکلات بحرانی واردات در لینوکس را برطرف می‌سازد. این انتشار شامل دو ویژگی اصلی، پنج بهبود و دو رفع باگ است.

چه چیزهای جدیدی در این انتشار وجود دارد

  • [ویژگی] پذیرش توابع پایتون به عنوان فراخوانی‌های پیش‌نمایش صفحه و امضا (SIGNATUREPYTHON-21)
  • [ویژگی] پذیرش اشیاء پایتون به عنوان پیاده‌سازی‌های ILogger، IDataEncryption و ICustomSignHash (SIGNATUREPYTHON-22)
  • [ویژگی] افزودن پشتیبانی از Python 3.14 (SIGNATUREPYTHON-23)
  • [بهبود] به‌روزرسانی موتور GroupDocs.Signature از 25.12 به 26.9 (SIGNATUREPYTHON-24)
  • [بهبود] به‌روزرسانی زمان‌اجرای .NET جاسازی‌شده از .NET Core 3.1 به .NET 10.0.12 (SIGNATUREPYTHON-25)
  • [بهبود] پرتاب GroupDocsSignatureException، IncorrectPasswordException و PasswordRequiredException به جای RuntimeError (SIGNATUREPYTHON-26)
  • [بهبود] پرتاب AttributeError هنگامی که کد ویژگی‌ای را به کلاس اختصاص می‌دهد که وجود ندارد (SIGNATUREPYTHON-27)
  • [بهبود] تغییر نام اعضایی که نام‌های پایتونی آن‌ها کلمات .NET را جدا می‌کرد (z_order → zorder، x_ad_es_type → xad_es_type) (SIGNATUREPYTHON-28)
  • [بهبود] انتخاب overloadها بر اساس محتویات یک لیست و عبور مقادیر datetime و Decimal به .NET بدون تغییر (SIGNATUREPYTHON-29)
  • [بهبود] به‌روزرسانی برچسب‌های پلتفرم wheel به manylinux_2_27 و macosx_12_0 و حذف wheel 32‑بیتی ویندوز (SIGNATUREPYTHON-30)
  • [رفع] عدم امکان وارد کردن wheel لینوکس در توزیع‌های فعلی (SIGNATUREPYTHON-31)
  • [رفع] نادیده گرفته شدن GROUPDOCS_LIC_PATH (SIGNATUREPYTHON-32)

تغییرات API عمومی

به‌روزرسانی‌کنندگان باید با اعضای تغییر نام‌داده‌شده، انواع استثناهای جدید و برچسب‌های پلتفرم به‌روزرسانی‌شده سازگار شوند. اکنون اختصاص ویژگی‌ها AttributeError پرتاب می‌کند و فراخوانی‌ها می‌توانند توابع ساده پایتون باشند.

کلاس‌ها و اعضای جدید

  • 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: یک سازنده؛ قبلاً نداشت.
  • PreviewSignatureOptions: یک سازنده؛ قبلاً نداشت.
  • SearchResult: get_enumerator()، to_list().
  • Signature: dispose().
  • SignatureSettings: default_culture.
  • WordProcessingSaveOptions: ooxml_compliance.

تغییر نام

کلاس نام قبلی نام جدید
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

ویژگی‌های جدید

تولید پیش‌نمایش با فراخوانی‌های پایتون

PreviewOptions اکنون می‌تواند با توابع ساده پایتون ساخته شود. فراخوانی create یک شیء page_data دریافت می‌کند و باید یک جریان قابل نوشتن (شیء فایل یا io.BytesIO) برگرداند. فراخوانی release پس از نوشتن تصویر فراخوانی می‌شود و همان page_data و جریان را دریافت می‌کند.

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

اشیاء پایتون به عنوان لاگر، رمزنگاری و فراخوانی‌های هش سفارشی

اکنون اشیاء ساده پایتون می‌توانند رابط‌های ILogger، IDataEncryption و ICustomSignHash را پیاده‌سازی کنند. یک شیء لاگر با متدهای trace، warning و error می‌تواند به SignatureSettings پاس داده شود. یک شیء رمزنگاری با متدهای encode و decode می‌تواند به options.data_encryption در امضای QR‑code یا متادیتا اختصاص یابد. یک امضاکننده هش سفارشی می‌تواند یک تابع یا شیء با متد custom_sign_hash باشد و توسط 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)

پشتیبانی از Python 3.14

wheel اکنون python_requires=">=3.5,<3.15" را اعلام می‌کند و یک wheel واحد برای هر پلتفرم، پشتیبانی از Python 3.5 تا 3.14 را پوشش می‌دهد. نیازی به تغییر کد نیست؛ همان وارد کردن و استفاده بر روی مفسر جدید کار می‌کند.

مثال کد

به بخش «ویژگی‌های جدید» بالا مراجعه کنید تا مثال‌های کد عملی که فراخوانی‌های پایتون برای تولید پیش‌نمایش و پیاده‌سازی لاگر/رمزنگاری سفارشی را نشان می‌دهند، ببینید.

نحوه دریافت به‌روزرسانی

PyPI

به‌روزرسانی به آخرین بسته GroupDocs.Signature for Python از طریق PyPI: groupdocs-signature-net 26.10.0

نصب با:

pip install groupdocs-signature-net==26.10.0

دانلود مستقیم

پکیج‌های wheel را مستقیماً از صفحه انتشار GroupDocs.Signature for Python v26.10 دانلود کنید.

منابع