เรามีความยินดีที่จะแจ้งการปล่อย GroupDocs.Signature for Python v26.10 ซึ่งพร้อมให้บริการตั้งแต่ October 2026. การปล่อยครั้งสำคัญนี้อัปเกรดเอนจิน GroupDocs.Signature พื้นฐานจากเวอร์ชัน 25.12 ไปเป็น 26.9 และย้าย runtime ของ .NET ที่ฝังอยู่จาก .NET Core 3.1 ไปเป็น .NET 10.0.12. มันนำเสนอการเรียกกลับแบบ Python สำหรับสตรีมการพรีวิว, ตัวบันทึก, การเข้ารหัสข้อมูล, และการสนับสนุนการเซ็นแฮชแบบกำหนดเอง, เพิ่มความเข้ากันได้เต็มรูปแบบกับ Python 3.14, และแก้ไขปัญหาการนำเข้าที่สำคัญบน Linux. การปล่อยนี้รวมคุณลักษณะหลักสองอย่าง, การปรับปรุงห้าประการ, และการแก้ไขบั๊กสองรายการ.

สิ่งใหม่ในรุ่นนี้

  • [Feature] ยอมรับฟังก์ชัน Python เป็นคอลแบ็กสำหรับการพรีวิวหน้าและลายเซ็น (SIGNATUREPYTHON-21)
  • [Feature] ยอมรับอ็อบเจ็กต์ Python เป็นการทำงานของ ILogger, IDataEncryption และ ICustomSignHash (SIGNATUREPYTHON-22)
  • [Feature] เพิ่มการสนับสนุน Python 3.14 (SIGNATUREPYTHON-23)
  • [Enhancement] อัปเดตเอนจิน GroupDocs.Signature จาก 25.12 เป็น 26.9 (SIGNATUREPYTHON-24)
  • [Enhancement] อัปเดต runtime ของ .NET ที่ฝังอยู่จาก .NET Core 3.1 ไปเป็น .NET 10.0.12 (SIGNATUREPYTHON-25)
  • [Enhancement] ทำให้เกิด GroupDocsSignatureException, IncorrectPasswordException และ PasswordRequiredException แทน RuntimeError (SIGNATUREPYTHON-26)
  • [Enhancement] ทำให้เกิด AttributeError เมื่อโค้ดพยายามกำหนดแอตทริบิวต์ที่คลาสไม่มี (SIGNATUREPYTHON-27)
  • [Enhancement] เปลี่ยนชื่อสมาชิกที่ชื่อ Python แยกคำของ .NET (z_order → zorder, x_ad_es_type → xad_es_type) (SIGNATUREPYTHON-28)
  • [Enhancement] เลือก overloads ตามเนื้อหาของรายการ, และส่งค่า datetime และ Decimal ไปยัง .NET โดยไม่เปลี่ยนแปลง (SIGNATUREPYTHON-29)
  • [Enhancement] อัปเดตแท็กแพลตฟอร์มของ wheel เป็น manylinux_2_27 และ macosx_12_0, และยกเลิก wheel สำหรับ Windows 32-bit (SIGNATUREPYTHON-30)
  • [Fix] wheel ของ Linux ไม่สามารถนำเข้าได้บนดิสโทรรุ่นปัจจุบัน (SIGNATUREPYTHON-31)
  • [Fix] GROUPDOCS_LIC_PATH ถูกละเลย (SIGNATUREPYTHON-32)

การเปลี่ยนแปลง API สาธารณะ

ผู้อัปเกรดต้องปรับให้เข้ากับสมาชิกที่เปลี่ยนชื่อ, ประเภทข้อยกเว้นใหม่, และแท็กแพลตฟอร์มที่อัปเดต. การกำหนดค่าแอตทริบิวต์ตอนนี้จะทำให้เกิด AttributeError และคอลแบ็กสามารถเป็นฟังก์ชัน Python ธรรมดาได้.

คลาสและสมาชิกใหม่

  • 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

คุณลักษณะใหม่

การสร้างพรีวิวด้วยคอลแบ็ก Python

PreviewOptions ตอนนี้สามารถสร้างด้วยฟังก์ชัน Python ธรรมดาได้. คอลแบ็ก 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))

อ็อบเจ็กต์ Python เป็น logger, encryption, และคอลแบ็ก hash แบบกำหนดเอง

อ็อบเจ็กต์ Python ธรรมดาตอนนี้สามารถทำงานตามอินเทอร์เฟซ ILogger, IDataEncryption, และ ICustomSignHash ได้. อ็อบเจ็กต์ logger ที่มีเมธอด trace, warning, และ error สามารถส่งให้กับ SignatureSettings. อ็อบเจ็กต์ encryption ที่มีเมธอด encode และ decode สามารถกำหนดให้กับ options.data_encryption บนลายเซ็น QR-code หรือ metadata. ตัวเซ็น hash แบบกำหนดเองอาจเป็นฟังก์ชันหรืออ็อบเจ็กต์ที่มีเมธอด 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. ไม่จำเป็นต้องเปลี่ยนโค้ด; การนำเข้าและการใช้งานเดียวกันทำงานบนอินเตอร์พรีเตอร์รุ่นใหม่.

ตัวอย่างโค้ด

ดูส่วน “คุณลักษณะใหม่” ด้านบนสำหรับตัวอย่างโค้ดที่ทำงานแสดงการใช้คอลแบ็ก Python สำหรับการสร้างพรีวิวและการทำงานของ logger/encryption แบบกำหนดเอง.

วิธีรับการอัปเดต

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 release page.

แหล่งข้อมูล