Wij zijn blij de release van GroupDocs.Watermark for Python v26.10 aan te kondigen, beschikbaar vanaf oktober 2026. Deze release upgrade de onderliggende .NET engine van 26.6 naar 26.9 en de ingebedde .NET runtime van 10.0.0 naar 10.0.12. Het introduceert ondersteuning voor aangepaste loggers, handhaaft strengere attribuuttoewijzing, en lost kritieke problemen op met preview callbacks en pagina‑stream handling. Daarnaast is de compatibiliteit uitgebreid naar Python 3.5–3.14, en wordt platformondersteuning verduidelijkt via strikte wheel‑tags.

Wat is nieuw in deze release

  • [Feature] Accepteer een Python‑object of functie als WatermarkerSettings.logger (WATERMARKPYTHON-65)
  • [Enhancement] Werk de GroupDocs.Watermark‑engine bij van 26.6 naar 26.9 (WATERMARKPYTHON-66)
  • [Enhancement] Werk de ingebedde .NET runtime bij van 10.0.0 naar 10.0.12 (WATERMARKPYTHON-67)
  • [Enhancement] Gooi AttributeError wanneer code een attribuut toewijst dat de klasse niet heeft (WATERMARKPYTHON-68)
  • [Fix] Kan het pakket niet gebruiken op Python 3.5 – 3.7 (WATERMARKPYTHON-69)
  • [Fix] pip installeert het pakket op Linux‑ en macOS‑versies die het niet kunnen uitvoeren (WATERMARKPYTHON-70)
  • [Fix] Preview‑release‑callbacks ontvangen None in plaats van de pagina‑stream (WATERMARKPYTHON-71)
  • [Fix] Pagina‑previews geschreven naar io.BytesIO zijn leeg (WATERMARKPYTHON-72)
  • [Fix] Spreadsheet‑pagina‑previews geschreven via een release‑callback zijn afgekapt (WATERMARKPYTHON-73)

Wijzigingen in de openbare API

Upgraden vereist het gebruik van het nieuwe wheel (pip ≥ 20.3) en het afhandelen van de nieuwe AttributeError voor verkeerd gespelde attributen; andere API‑handtekeningen blijven ongewijzigd.

Nieuwe klassen en leden

  • Color: een constructor; die had er geen.
  • get() op 4 geïndexeerde klassen — ReadOnlyListBase, SpreadsheetHeaderFooterCollection, SpreadsheetHeaderFooterSectionCollection, WordProcessingHeaderFooterCollection — als alternatief voor x[key]; hun item‑eigenschap is verwijderd.

Nieuwe functies

Aangepaste logger voor WatermarkerSettings

WatermarkerSettings.logger accepteert nu een Python‑object of een eenvoudige functie. In 26.6 veroorzaakte het toewijzen van een willekeurige waarde

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

De logger kan een object zijn dat trace(message), warning(message) en error(message, exception) implementeert, of een callable fn(level, message, exception). De engine logt een trace wanneer hij een bestand opent en een error (met de .NET‑exceptietekst) wanneer hij er geen kan laden; fouten binnen de logger worden genegeerd.

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)

Strikte attribuuttoewijzing

Het toewijzen van een verkeerd gespelde of .NET‑stijl eigenschap op een watermark‑wrapper veroorzaakt nu een AttributeError in plaats van stilzwijgend een alleen‑Python‑attribuut te creëren. Dit voorkomt dat code denkt dat het document is gewijzigd terwijl dat niet het geval is.

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

De opgegooide fout is:

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

Bestaande correcte eigenschapstoewijzingen blijven ongewijzigd werken.

Codevoorbeeld

Zie de secties Aangepaste logger voor WatermarkerSettings en Strikte attribuuttoewijzing hierboven.

Hoe de update te verkrijgen

PyPI

Directe download

Download de wheels voor Windows, Linux en macOS vanaf de GroupDocs.Watermark for Python via .NET 26.10 pagina.

Bronnen