GroupDocs.Signature for Python 26.1‘de Neler Yeni (Ocak 2026)
| ID | Kategori | Özet |
|---|---|---|
| SIGNATURENET‑5528 | ✨ Özellik | Görüntü dijital imza desteği ve doğrulaması (PNG ve JPG için steganografik LSB gömme). |
| SIGNATURENET‑5445 | ✨ Özellik | Barkod ve QR Kod imza önizlemeleri için uyarlamalı renderleme – kesin genişlik/yükseklik kontrolü. |
| SIGNATURENET‑5479 | ✨ Özellik | Barkod ve QR Kod önizleme görüntüleri için döndürme desteği. |
| SIGNATURENET‑5478 | ✨ Özellik | Görüntü‑tabanlı imzalar için APNG ve TGA formatı işleme eklendi. |
| SIGNATURENET‑5500 | ⚡ Geliştirme | İmza arama ve doğrulama için LINQ‑stil sorgu optimizasyonu (öngörü filtreleme). |
| SIGNATURENET‑5480 | ⚡ Geliştirme | Barkod/QR önizlemeleri için arka plan saydamlığı desteği. |
| SIGNATURENET‑5477 | ⚡ Geliştirme | Arka plan rengi ve ön plan görüntüsü (foreground‑image işareti) ile dijital imzalara üst‑üste görüntü eklenmesi. |
| SIGNATURENET‑5422 | ⚡ Geliştirme | Güvensiz şifreleme algoritmaları (RC2, DES, TripleDES ve zayıf AES modları) kaldırıldı. |
| SIGNATURENET‑5555 | 🐞 Hata Düzeltme | Linux üzerinde DOC dosyaları için GeneratePreview() tip‑başlatıcı istisnası düzeltildi. |
Aşağıda, en etkili değişikliklerin kısa bir teknik incelemesi yer almaktadır.
1. Görüntü dijital imzası (steganografi)
- İmzalar, PNG/JPG piksellerinin en düşük anlamlı bitlerinde gizlenir.
- Şifre korumalı, akış uyumlu ve herhangi bir görüntü boyutu (≥ 8 × 8 px) ile çalışır.
Görüntü 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ı 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 çıkarımı)
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. Barcode ve QR Kod önizlemeleri için uyarlamalı renderleme
Geliştiriciler artık önizleme oluştururken tam width ve height değerlerini belirtebilir, önceki “otomatik‑boyut” 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. Barcode ve QR önizlemeleri için döndürme desteği
rotation_angle (derece) ayarını barcode/QR seçeneklerinde belirleyerek döndürülmüş önizlemeler oluşturabilirsiniz.
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 ve TGA
APNG (animasyonlu PNG) ve TGA (Targa) dosyaları artık görüntü imzaları olarak kullanılabilir, eklenebilir, önizlenebilir ve PNG/JPG gibi doğrulanabilir.
5. Barcode/QR önizlemeleri için arka plan saydamlığı
Barcode/QR seçeneklerinde transparency (0 – 1) özelliğini ayarlayarak saydam bir tuval ile önizlemeler 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 üst üste görüntü desteği
PdfDigitalSignatureAppearance artık bir üst üste görüntüyü ve arka plan rengini görüntüyü kapatmadan uygular. Katmanlamayı SignatureCustomAppearance.IsForegroundImage ile kontrol edebilirsiniz.
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üvensiz algoritmaların kaldırılması
RC2, DES, TripleDES ve zayıf AES modları şifreleme yığınından kaldırıldı. Sadece modern, NIST onaylı algoritmalar mevcut, bu da imzalı belgelerin varsayılan güvenlik durumunu iyileştirir.
8. LINQ‑stil sorgu iyileştirmesi
İmza search ve verify artık öngörü (predicate) fonksiyonları kabul eder; 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.
Öngörü (predicate) 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}")
Öngörü (predicate) 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 önizleme çökmesi düzeltildi
GeneratePreview() artık Linux üzerinde Microsoft Word (.doc) dosyalarını işlerken TypeInitializerException hatası atmaz; çapraz platform önizleme işlevselliği geri getirildi.
Yükseltme 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)
- Dokümantasyon: https://docs.groupdocs.com/signature/python/
- Topluluk & Destek: https://forum.groupdocs.com/c/signature/10
Gelecek sürümler için bizi izlemeye devam edin ve performans ipuçları ve en iyi uygulama kılavuzları için resmi bloga göz atın.