GroupDocs.Signature for Python 26.1‘de (Ocak 2026) yenilikler
| ID | Kategori | Özet |
|---|---|---|
| SIGNATURENET‑5528 | ✨ Özellik | Görsel dijital imza desteği ve doğrulaması (PNG & JPG için steganografik LSB gömme). |
| SIGNATURENET‑5445 | ✨ Özellik | Barkod ve QR Kod imza ön izlemeleri için uyarlanabilir renderleme – genişlik/yükseklik kontrolü. |
| SIGNATURENET‑5479 | ✨ Özellik | Barkod ve QR Kod ön izleme görselleri için döndürme desteği. |
| SIGNATURENET‑5478 | ✨ Özellik | Görsel tabanlı imzalar için APNG ve TGA görüntü formatı desteği eklendi. |
| SIGNATURENET‑5500 | ⚡ İyileştirme | İmza arama ve doğrulama için LINQ benzeri sorgu optimizasyonu (koşul filtreleme). |
| SIGNATURENET‑5480 | ⚡ İyileştirme | Barkod/QR ön izlemeleri için arka plan şeffaflığı desteği. |
| SIGNATURENET‑5477 | ⚡ İyileştirme | Arka plan rengiyle dijital imzalar için kaplama görüntüsü desteği (ön‑görüntü işareti). |
| SIGNATURENET‑5422 | ⚡ İyileştirme | Güvenliği düşük şifreleme algoritmalarının kaldırılması (RC2, DES, TripleDES ve zayıf AES modları). |
| SIGNATURENET‑5555 | 🐞 Hata Düzeltmesi | GeneratePreview() tip‑başlatıcı istisnası, Linux’ta DOC dosyaları için düzeltildi. |
Aşağıda en etkili değişikliklerin kısa teknik bir yürütülmesi bulunmaktadır.
1. Görsel dijital imza (steganografi)
- İmzalar PNG/JPG piksellerinin en düşük anlamlı bitlerinde gizlenir.
- Şifre korumalı, akış‑uyumlu ve herhangi bir ≥ 8 × 8 px görüntü boyutunda çalışır.
Bir görüntüyü imzalama
import groupdocs.signature as gs
import groupdocs.signature.options as gso
input_file = "image.png"
output_file = "signed_image.png"
password = "MySecurePassword123"
# Sign the image
with gs.Signature(input_file) as signature:
sign_options = gso.ImageDigitalSignOptions()
sign_options.password = password
sign_result = signature.sign(output_file, sign_options)
if sign_result.succeeded and len(sign_result.succeeded) > 0:
print("Image signed successfully!")
print(f"Signatures added: {len(sign_result.succeeded)}")
İmzalı bir görüntüyü doğrulama
import groupdocs.signature as gs
import groupdocs.signature.options as gso
signed_file = "signed_image.png"
password = "MySecurePassword123"
with gs.Signature(signed_file) as signature:
verify_options = gso.ImageDigitalVerifyOptions()
verify_options.password = password
verify_options.detection_threshold_percent = 75 # optional 0‑100%
verify_result = signature.verify(verify_options)
if verify_result.is_valid:
print("Digital signature is valid!")
print(f"Verified signatures: {len(verify_result.succeeded)}")
else:
print("Digital signature is invalid or not found.")
Gelişmiş doğrulama (tam veri çıkartma)
with gs.Signature("signed_image.png") as signature:
verify_options = gso.ImageDigitalVerifyOptions()
verify_options.password = "MySecurePassword123"
verify_options.use_full_data_extraction = True
verify_options.detection_threshold_percent = 85
verify_result = signature.verify(verify_options)
if verify_result.is_valid and verify_options.detected_probability is not None:
print(f"Signature detected with {verify_options.detected_probability}% probability")
2. Barkod ve QR Kod ön izlemeleri için uyarlanabilir renderleme
Geliştiriciler artık ön izleme oluştururken tam width ve height belirtebilir, önceki “auto‑size” tutarsızlıklarını ortadan kaldırır.
import groupdocs.signature as gs
import groupdocs.signature.options as gso
import uuid
# QR code options
qr_sign_options = gso.QrCodeSignOptions("GROUP DOCS", gs.QrCodeTypes.QR)
qr_sign_options.width = 250
qr_sign_options.height = 270
qr_sign_options.fore_color = gs.Color.red
qr_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW
qr_sign_options.text = "GROUP DOCS"
# Preview generation
preview_options = gso.PreviewSignatureOptions(
qr_sign_options,
create_signature_stream, # user‑provided delegate
release_signature_stream # user‑provided delegate
)
preview_options.signature_id = str(uuid.uuid4())
preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG
gs.Signature.generate_signature_preview(preview_options)
3. Barkod ve QR ön izlemeleri için döndürme desteği
rotation_angle (derece) değerini barkod/QR seçeneklerine ayarlayarak döndürülmüş ön izlemeler elde edebilirsiniz.
import groupdocs.signature as gs
import groupdocs.signature.options as gso
import uuid
barcode_sign_options = gso.BarcodeSignOptions("GROUP DOCS", gs.BarcodeTypes.MaxiCode)
barcode_sign_options.width = 400
barcode_sign_options.height = 400
barcode_sign_options.fore_color = gs.Color.red
barcode_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW
barcode_sign_options.text = "GROUP DOCS"
barcode_sign_options.rotation_angle = 45 # rotate 45°
preview_options = gso.PreviewSignatureOptions(
barcode_sign_options,
create_signature_stream,
release_signature_stream
)
preview_options.signature_id = str(uuid.uuid4())
preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG
gs.Signature.generate_signature_preview(preview_options)
4. Yeni görüntü formatı desteği – APNG & TGA
APNG (animasyonlu PNG) ve TGA (Targa) dosyaları artık görsel imza olarak kullanılabilir, eklenebilir, ön izlenebilir ve PNG/JPG gibi doğrulanabilir.
5. Barkod/QR ön izlemeleri için arka plan şeffaflığı
Barkod/QR seçeneklerinde transparency özelliğini (0 – 1) ayarlayarak şeffaf bir tuval ile ön izlemeler oluşturabilirsiniz.
barcode_sign_options = gso.BarcodeSignOptions("GROUP DOCS", gs.BarcodeTypes.Codabar)
barcode_sign_options.width = 400
barcode_sign_options.height = 400
barcode_sign_options.fore_color = gs.Color.red
barcode_sign_options.code_text_alignment = gs.CodeTextAlignment.BELOW
barcode_sign_options.text = "GROUP DOCS"
barcode_sign_options.transparency = 0.5 # 50 % transparent background
preview_options = gso.PreviewSignatureOptions(
barcode_sign_options,
create_signature_stream,
release_signature_stream
)
preview_options.signature_id = str(uuid.uuid4())
preview_options.preview_format = gso.PreviewSignatureOptions.PreviewFormats.PNG
gs.Signature.generate_signature_preview(preview_options)
6. Dijital imzalar için kaplama görüntüsü desteği
PdfDigitalSignatureAppearance artık bir kaplama görüntüsünü ve arka plan rengini, görüntüyü gizlemeden destekler. Katmanlama SignatureCustomAppearance.IsForegroundImage ile kontrol edilir.
import groupdocs.signature as gs
import groupdocs.signature.options as gso
signature_image_path = "signature.png"
certificate_path = "JohnSmithCertificate.pfx"
input_pdf = "SampleDocument.pdf"
output_pdf = "SignedDocument.pdf"
with gs.Signature(input_pdf) as signature:
sign_options = gso.DigitalSignOptions(certificate_path)
sign_options.password = "1234567890"
sign_options.reason = "Document approval"
sign_options.contact = "John Smith"
sign_options.location = "Head Office"
# Visible signature placement
sign_options.visible = True
sign_options.left = 350
sign_options.top = 100
sign_options.width = 200
sign_options.height = 70
sign_options.image_file_path = signature_image_path
appearance = gso.PdfDigitalSignatureAppearance()
appearance.foreground = gs.Color.from_argb(50, gs.Color.brown)
appearance.font_family_name = "Times New Roman"
appearance.font_size = 12
appearance.background = gs.Color.from_argb(50, gs.Color.light_gray)
appearance.is_foreground_image = True # image on top of text
sign_options.appearance = appearance
sign_result = signature.sign(output_pdf, sign_options)
print(f"\nDocument signed successfully with {len(sign_result.succeeded)} signature(s).")
print(f"Signed file saved at: {output_pdf}")
7. Güvenlik güçlendirmesi – güvenliği düşük algoritmaların kaldırılması
RC2, DES, TripleDES ve zayıf AES modları şifreleme yığınından kaldırıldı. Yalnızca modern, NIST onaylı algoritmalar mevcuttur; bu da imzalanmış belgelerin varsayılan güvenlik duruşunu iyileştirir.
8. LINQ‑benzeri sorgu optimizasyonu
İmza search ve verify artık koşul fonksiyonları alır; bu fonksiyonlar imzaları ağır işleme adımlarından önce filtreler. Bu, bellek kullanımını azaltır ve toplu işlemleri hızlandırır.
Koşul ile arama
import groupdocs.signature as gs
import groupdocs.signature.options as gso
import groupdocs.signature.domain as gsd
with gs.Signature("document.pdf") as signature:
search_options = [gso.TextSearchOptions()]
# Keep only text signatures that contain the word "Approved"
result = signature.search(search_options,
lambda sig: isinstance(sig, gsd.TextSignature) and "Approved" in sig.text)
for sig in result.signatures:
print(f"Found: {sig.text}")
Koşul ile doğrulama
with gs.Signature("signed_document.pdf") as signature:
verify_options = gso.TextVerifyOptions("John Smith")
# Verify only signatures on page 1
result = signature.verify(verify_options,
lambda sig: sig.page_number == 1)
print(f"Found {len(result)} verified signatures on page 1")
9. Linux DOC ön izleme kilitlenmesi düzeltildi
GeneratePreview() artık Linux’ta Microsoft Word (.doc) dosyaları işlenirken TypeInitializerException hatası atmaz; çapraz platform ön izleme işlevselliği geri getirildi.
Güncelleme talimatları
pip install --upgrade groupdocs-signature-net
Not:
groupdocs-signature-netpaket adı, Python‑via‑.NET sargısı için kullanılır.
Kaynaklar
- Tam sürüm notları: (link to the official release notes page, if available)
- Documentation: https://docs.groupdocs.com/signature/python/
- Topluluk ve Destek: https://forum.groupdocs.com/c/signature/10
Gelecek sürümleri kaçırmayın ve performans ipuçları ile en iyi uygulama rehberleri için resmi bloga göz atın.