Z przyjemnością ogłaszamy wydanie GroupDocs.Watermark for Python v26.10, dostępne od października 2026. To wydanie aktualizuje podstawowy silnik .NET z wersji 26.6 do 26.9 oraz wbudowane środowisko uruchomieniowe .NET z 10.0.0 do 10.0.12. Wprowadza wsparcie dla własnych loggerów, wymusza bardziej rygorystyczne przypisywanie atrybutów oraz naprawia krytyczne problemy z wywołaniami zwrotnymi podglądu i obsługą strumieni stron. Dodatkowo kompatybilność została rozszerzona do Pythona 3.5–3.14, a wsparcie platform zostało wyjaśnione poprzez ścisłe tagi wheel.
Co nowego w tym wydaniu
- [Feature] Akceptuj obiekt Pythona lub funkcję jako
WatermarkerSettings.logger(WATERMARKPYTHON-65) - [Enhancement] Zaktualizuj silnik GroupDocs.Watermark z 26.6 do 26.9 (WATERMARKPYTHON-66)
- [Enhancement] Zaktualizuj wbudowane środowisko uruchomieniowe .NET z 10.0.0 do 10.0.12 (WATERMARKPYTHON-67)
- [Enhancement] Rzuć
AttributeErrorgdy kod przypisuje atrybut, którego klasa nie posiada (WATERMARKPYTHON-68) - [Fix] Nie można używać pakietu w Pythonie 3.5 – 3.7 (WATERMARKPYTHON-69)
- [Fix] pip instaluje pakiet na wersjach Linux i macOS, które nie mogą go uruchomić (WATERMARKPYTHON-70)
- [Fix] Wywołania zwrotne podglądu wydania otrzymują
Nonezamiast strumienia strony (WATERMARKPYTHON-71) - [Fix] Podglądy stron zapisane do
io.BytesIOsą puste (WATERMARKPYTHON-72) - [Fix] Podglądy stron arkusza kalkulacyjnego zapisywane przez wywołanie zwrotne wydania są obcięte (WATERMARKPYTHON-73)
Zmiany w publicznym API
Aktualizacja wymaga użycia nowego wheel (pip ≥ 20.3) oraz obsługi nowego AttributeError dla błędnie napisanych atrybutów; pozostałe sygnatury API pozostają niezmienione.
Nowe klasy i członkowie
Color: konstruktor; wcześniej go nie było.get()w 4 indeksowanych klasach —ReadOnlyListBase,SpreadsheetHeaderFooterCollection,SpreadsheetHeaderFooterSectionCollection,WordProcessingHeaderFooterCollection— jako alternatywa dlax[key]; ich właściwośćitemzostała usunięta.
Nowe funkcje
Własny logger dla WatermarkerSettings
WatermarkerSettings.logger teraz akceptuje obiekt Pythona lub zwykłą funkcję. W wersji 26.6 przypisanie dowolnej wartości powodowało
TypeError: _marshal_callback_or_handle: cannot wrap ... as GroupDocs.Watermark.Options.ILogger
Logger może być obiektem implementującym trace(message), warning(message) oraz error(message, exception), lub wywoływalnym fn(level, message, exception). Silnik zapisuje trace, gdy otwiera plik oraz error (z tekstem wyjątku .NET), gdy nie może go załadować; błędy wewnątrz loggera są ignorowane.
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)
Rygorystyczne przypisywanie atrybutów
Przypisanie błędnie napisanego lub w stylu .NET właściwości w obiekcie opakowującym watermark teraz rzuca AttributeError zamiast cicho tworzyć atrybut dostępny tylko w Pythonie. Zapobiega to sytuacji, w której kod sądzi, że zmienił dokument, a tak nie jest.
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
Rzucony błąd to:
AttributeError: 'TextWatermark' object has no attribute 'opacity_level'; assigning it would not reach the .NET object. Did you mean: 'opacity'?
Istniejące poprawne przypisania właściwości nadal działają bez zmian.
Przykład kodu
Zobacz sekcje Własny logger dla WatermarkerSettings oraz Rygorystyczne przypisywanie atrybutów powyżej.
Jak uzyskać aktualizację
PyPI
- Pakiet: groupdocs-watermark-net 26.10.0
- Polecenie instalacji:
pip install groupdocs-watermark-net==26.10.0
Bezpośrednie pobranie
Pobierz pliki wheel dla Windows, Linux i macOS ze strony GroupDocs.Watermark for Python via .NET 26.10.