Jsme rádi, že můžeme oznámit vydání GroupDocs.Watermark for Python v26.10, dostupné od října 2026. Toto vydání aktualizuje podkladový .NET engine z verze 26.6 na 26.9 a vložený .NET runtime z 10.0.0 na 10.0.12. Přináší podporu vlastních loggerů, vynucuje přísnější přiřazování atributů a opravuje kritické problémy s preview callbacky a zpracováním proudu stránky. Navíc je rozšířena kompatibilita na Python 3.5–3.14 a podpora platforem je upřesněna pomocí přísných wheel tagů.
Co je nového v tomto vydání
- [Feature] Přijmout Python objekt nebo funkci jako
WatermarkerSettings.logger(WATERMARKPYTHON-65) - [Enhancement] Aktualizovat engine GroupDocs.Watermark z 26.6 na 26.9 (WATERMARKPYTHON-66)
- [Enhancement] Aktualizovat vložený .NET runtime z 10.0.0 na 10.0.12 (WATERMARKPYTHON-67)
- [Enhancement] Vyvolat
AttributeError, když kód přiřadí atribut, který třída nemá (WATERMARKPYTHON-68) - [Fix] Nelze použít balíček na Python 3.5 – 3.7 (WATERMARKPYTHON-69)
- [Fix] pip nainstaluje balíček na verze Linuxu a macOS, které jej nemohou spustit (WATERMARKPYTHON-70)
- [Fix] Preview release callbacky dostávají
Nonemísto proudu stránky (WATERMARKPYTHON-71) - [Fix] Náhledy stránek zapsané do
io.BytesIOjsou prázdné (WATERMARKPYTHON-72) - [Fix] Náhledy stránek tabulek zapsané přes release callback jsou oříznuté (WATERMARKPYTHON-73)
Změny veřejného API
Aktualizace vyžaduje použití nového wheelu (pip ≥ 20.3) a ošetření nového AttributeError pro špatně napsané atributy; ostatní podpisy API zůstávají beze změny.
Nové třídy a členové
Color: konstruktor; dříve žádný.get()u 4 indexovaných tříd —ReadOnlyListBase,SpreadsheetHeaderFooterCollection,SpreadsheetHeaderFooterSectionCollection,WordProcessingHeaderFooterCollection— jako alternativa kx[key]; jejich vlastnostitemje odstraněna.
Nové funkce
Vlastní logger pro WatermarkerSettings
WatermarkerSettings.logger nyní přijímá Python objekt nebo jednoduchou funkci. Ve verzi 26.6 přiřazení jakékoli hodnoty vyvolávalo
TypeError: _marshal_callback_or_handle: cannot wrap ... as GroupDocs.Watermark.Options.ILogger
Logger může být objekt, který implementuje trace(message), warning(message) a error(message, exception), nebo volatelný fn(level, message, exception). Engine zaznamená trace při otevření souboru a error (s textem .NET výjimky), když jej nemůže načíst; selhání uvnitř loggeru jsou ignorována.
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)
Přísné přiřazování atributů
Přiřazení špatně napsané nebo .NET‑stylové vlastnosti na wrapper watermark nyní vyvolá AttributeError místo tichého vytvoření Python‑only atributu. To zabraňuje kódu v domnělém změnění dokumentu, když se tak nestalo.
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
Vyvolaná chyba je:
AttributeError: 'TextWatermark' object has no attribute 'opacity_level'; assigning it would not reach the .NET object. Did you mean: 'opacity'?
Existující správná přiřazení vlastností nadále fungují beze změny.
Příklad kódu
Viz sekce Custom logger for WatermarkerSettings a Strict attribute assignment výše.
Jak získat aktualizaci
PyPI
- Balíček: groupdocs-watermark-net 26.10.0
- Instalační příkaz:
pip install groupdocs-watermark-net==26.10.0
Přímé stažení
Stáhněte si wheel soubory pro Windows, Linux a macOS ze stránky GroupDocs.Watermark for Python via .NET 26.10 .