We’re happy to announce the release of GroupDocs.Watermark for Python v26.10, available as of October 2026. This release upgrades the underlying .NET engine from 26.6 to 26.9 and the embedded .NET runtime from 10.0.0 to 10.0.12. It introduces support for custom loggers, enforces stricter attribute assignment, and fixes critical issues with preview callbacks and page stream handling. Additionally, compatibility is extended to Python 3.5–3.14, and platform support is clarified via strict wheel tags.

Bu sürümde yenilikler

  • [Feature] Python nesnesi veya fonksiyonunu WatermarkerSettings.logger olarak kabul et (WATERMARKPYTHON-65)
  • [Enhancement] GroupDocs.Watermark motorunu 26.6’dan 26.9’a güncelle (WATERMARKPYTHON-66)
  • [Enhancement] Gömülü .NET çalışma zamanını 10.0.0’dan 10.0.12’ye güncelle (WATERMARKPYTHON-67)
  • [Enhancement] Kod bir sınıfın sahip olmadığı bir öznitelik atadığında AttributeError fırlat (WATERMARKPYTHON-68)
  • [Fix] Paket Python 3.5 – 3.7’de kullanılamıyor (WATERMARKPYTHON-69)
  • [Fix] pip, paketi çalıştırılamayan Linux ve macOS sürümlerine kuruyor (WATERMARKPYTHON-70)
  • [Fix] Önizleme yayın geri aramaları sayfa akışı yerine None alıyor (WATERMARKPYTHON-71)
  • [Fix] io.BytesIO‘ye yazılan sayfa önizlemeleri boş (WATERMARKPYTHON-72)
  • [Fix] Yayın geri aramasıyla yazılan elektronik tablo sayfa önizlemeleri kesiliyor (WATERMARKPYTHON-73)

Genel API değişiklikleri

Yükseltme, yeni tekerleği (pip ≥ 20.3) kullanmayı ve yanlış yazılmış öznitelikler için yeni AttributeError‘ı ele almayı gerektirir; diğer API imzaları değişmeden kalır.

Yeni sınıflar ve üyeler

  • Color: bir yapıcı; daha önce yoktu.
  • get() 4 indeksli sınıfta — ReadOnlyListBase, SpreadsheetHeaderFooterCollection, SpreadsheetHeaderFooterSectionCollection, WordProcessingHeaderFooterCollection — x[key]‘e alternatif olarak; bu sınıfların item özelliği kaldırıldı.

Yeni özellikler

WatermarkerSettings için özel günlükçü

WatermarkerSettings.logger artık bir Python nesnesi veya basit bir fonksiyon kabul ediyor. 26.6’da herhangi bir değer atandığında şu hata yükseltiliyordu

TypeError: _marshal_callback_or_handle: cannot wrap ... as GroupDocs.Watermark.Options.ILogger

Günlükçü, trace(message), warning(message) ve error(message, exception) metodlarını uygulayan bir nesne ya da çağrılabilir fn(level, message, exception) olabilir. Motor, bir dosya açtığında trace kaydeder ve bir dosyayı yükleyemediğinde ( .NET istisna metniyle) error kaydeder; günlükçü içindeki hatalar yok sayılır.

from groupdocs.watermark import Watermarker, WatermarkerSettings

class PrintLogger:
    def trace(self, message):
        print("trace:", message)

    def warning(self, message):
        print("warning:", message)

    def error(self, message, exception):
        print("error:", message, exception)

settings = WatermarkerSettings()
settings.logger = PrintLogger()  # object with the required methods
# or: settings.logger = lambda level, msg, exc: print(level, msg, exc)

with Watermarker("document.pdf", settings) as watermarker:
    print(watermarker.get_document_info().page_count)

Katı öznitelik ataması

Bir watermark sarmalayıcısında yanlış yazılmış veya .NET tarzı bir özelliği atamak artık sessizce yalnızca Python için bir öznitelik oluşturmak yerine AttributeError fırlatır. Bu, kodun belgeyi değiştirdiğini düşünmesini engeller.

from groupdocs.watermark import Watermarker
from groupdocs.watermark.watermarks import TextWatermark, Font

with Watermarker("document.pdf") as wm:
    watermark = TextWatermark("CONFIDENTIAL", Font("Arial", 36))
    # The following line raises an error because the property name is wrong
    watermark.opacity_level = 0.5

Yükseltilen hata:

AttributeError: 'TextWatermark' object has no attribute 'opacity_level'; assigning it would not reach the .NET object. Did you mean: 'opacity'?

Mevcut doğru özellik atamaları değişmeden çalışmaya devam eder.

Kod örneği

Yukarıdaki WatermarkerSettings için özel günlükçü ve Katı öznitelik ataması bölümlerine bakın.

Güncellemeyi nasıl alabilirsiniz

PyPI

Doğrudan indirme

Windows, Linux ve macOS için tekerlekleri GroupDocs.Watermark for Python via .NET 26.10 sayfasından indirin.

Kaynaklar