Browse our Products

If so you can download any of the below versions for testing. The product will function as normal except for an evaluation limitation. At the time of purchase we provide a license file via email that will allow the product to work in its full capacity. If you would also like an evaluation license to test without any restrictions for 30 days, please follow the directions provided here.

GroupDocs.Watermark for Python via .NET Downloads

banner

PyPI PyPI - Python Version

Product Page | Docs | Demos | API Reference | Blog | Free Support | Temporary License

GroupDocs.Watermark for Python via .NET is a document-watermarking API for adding, searching, and removing text and image watermarks. Stamp configurable text or image watermarks — with control over position, size, opacity, rotation, alignment, and tiling — then save the result back to the original format; search for and remove existing watermarks (including ones added by other tools) across PDF, Word, Excel, PowerPoint, Visio, email, and image formats through one unified API, with no MS Office or other external software required.

Get Started

pip install groupdocs-watermark-net
from groupdocs.watermark import Watermarker
from groupdocs.watermark.watermarks import TextWatermark, Font

with Watermarker("document.pdf") as watermarker:
    watermark = TextWatermark("CONFIDENTIAL", Font("Arial", 36.0))
    watermark.opacity = 0.5
    watermarker.add(watermark)
    watermarker.save("watermarked.pdf")

How It Works

The package is a self-contained Python wheel that bundles the embedded .NET runtime and every native dependency (SkiaSharp, Aspose.Drawing) needed to load, watermark, render, and save documents. No external software installation is required — just pip install and start watermarking. The wheel works across Python 3.5 – 3.14 on Windows, Linux, and macOS (Intel + Apple Silicon).

Features

  • Text watermarks — configurable font, foreground/background color, opacity, rotation, and alignment.
  • Image watermarks — from a file or an in-memory stream, with scaling, opacity, and positioning.
  • Positioning & sizing — absolute coordinates, horizontal/vertical alignment, margins, scale-to-parent sizing, and rotation.
  • Tiling — repeat a watermark across the page with configurable tile lines and spacing.
  • Search — find existing watermarks by text, image, color, size, or rotation, combined with AND/OR/NOT criteria.
  • Remove — delete found watermarks individually or in batches and save the cleaned document.
  • Document introspection — read format, page count, and per-page dimensions before processing.
  • Previews — render pages to PNG/JPEG/BMP images via a page-stream callback.
  • Cross-Platform — Windows x64/x86, Linux x64, macOS x64/ARM64.

Common Tasks

  • Stamp a “CONFIDENTIAL” text watermark across every page of a PDF and save it back
  • Add a semi-transparent logo image watermark to a Word or PowerPoint document
  • Tile a watermark diagonally across a page
  • Search a document for an existing watermark by its text and remove it
  • Read a document’s format and page count before processing
  • Render watermarked pages to images for a preview UI

Supported File Formats

For a complete list, see supported formats.

CategoryFormats
Word ProcessingDOC, DOCX, DOCM, DOT, DOTX, RTF, ODT, OTT
SpreadsheetsXLS, XLSX, XLSM, XLSB, ODS
PresentationsPPT, PPTX, PPTM, PPS, PPSX, ODP
Fixed-LayoutPDF
DiagramsVSD, VSDX, VSS, VST, VDX
EmailMSG, EML, EMLX
ImagesBMP, JPG, JPEG, PNG, GIF, TIFF, WEBP

Examples

Add a text watermark

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

with Watermarker("document.pdf") as watermarker:
    watermark = TextWatermark("CONFIDENTIAL", Font("Arial", 48))
    watermark.foreground_color = Color.red
    watermark.opacity = 0.5
    watermark.rotate_angle = -45
    watermarker.add(watermark)
    watermarker.save("watermarked.pdf")

Add an image watermark

from groupdocs.watermark import Watermarker
from groupdocs.watermark.watermarks import ImageWatermark, SizingType

with Watermarker("document.docx") as watermarker:
    watermark = ImageWatermark("logo.png")
    watermark.sizing_type = SizingType.SCALE_TO_PARENT_DIMENSIONS
    watermark.scale_factor = 0.5
    watermark.opacity = 0.7
    watermarker.add(watermark)
    watermarker.save("watermarked.docx")

Tile a watermark across the page

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

with Watermarker("document.pdf") as watermarker:
    watermark = TextWatermark("DRAFT", Font("Arial", 19))
    tile = TileOptions()
    tile.tile_type = TileType.STRAIGHT           # repeat across the page
    watermark.tile_options = tile
    watermark.opacity = 0.3
    watermarker.add(watermark)
    watermarker.save("tiled.pdf")

Search for and remove a watermark

from groupdocs.watermark import Watermarker
from groupdocs.watermark.search.search_criteria import TextSearchCriteria

with Watermarker("watermarked.pdf") as watermarker:
    criteria = TextSearchCriteria("CONFIDENTIAL")     # also: ImageSearchCriteria(...)
    possible = watermarker.search(criteria)
    print("found:", len(possible))
    for wm in possible:
        print(wm.text, wm.x, wm.y)
    watermarker.remove(possible)                       # remove the whole collection
    watermarker.save("clean.pdf")

Read document info

from groupdocs.watermark import Watermarker

with Watermarker("document.pdf") as watermarker:
    info = watermarker.get_document_info()
    print("format:", info.file_type)
    print("pages:", info.page_count)

Watermark from / to a binary stream

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

with open("document.pdf", "rb") as src:
    with Watermarker(src) as watermarker:
        watermarker.add(TextWatermark("CONFIDENTIAL", Font("Arial", 36)))
        buffer = io.BytesIO()
        watermarker.save(buffer)          # BytesIO is updated after save
        data = buffer.getvalue()

AI Agent & LLM Friendly

This package is designed for seamless integration with AI agents, LLMs, and automated code generation tools.

  • AGENTS.md in the package — AI coding assistants (Claude Code, Cursor, GitHub Copilot) auto-discover the API surface, usage patterns, and troubleshooting tips from the installed package
  • MCP server — connect your AI tool to GroupDocs documentation for on-demand API lookups:
    { "mcpServers": { "groupdocs-docs": { "url": "https://docs.groupdocs.com/mcp" } } }
    
  • Machine-readable docs — full documentation available as plain text for RAG and LLM context:
    • Single file: https://docs.groupdocs.com/watermark/python-net/llms-full.txt
    • Per page: append .md to any docs URL

Evaluation Mode

The API works without a license in evaluation mode, with these limitations:

  • Output is restricted: PDF output carries an evaluation watermark and other formats show an equivalent evaluation mark.
  • A page/document-count cap applies to processed documents.

To remove these limitations, apply a license or request a temporary license:

from groupdocs.watermark import License
License().set_license("path/to/license.lic")

Or set the environment variable (auto-applied at import):

export GROUPDOCS_LIC_PATH="path/to/license.lic"

Troubleshooting

IssuePlatformFix
Evaluation watermark on outputAllApply a license — License().set_license(...) or set GROUPDOCS_LIC_PATH
System.Drawing.Common is not supportedLinux/macOSapt-get install libgdiplus (Linux) or brew install mono-libgdiplus (macOS)
The type initializer for 'Gdip' threw an exceptionmacOSbrew install mono-libgdiplus
Garbled text / missing fonts in outputLinuxapt-get install ttf-mscorefonts-installer fontconfig && fc-cache -f
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT errorsLinuxDo NOT set this variable. ICU must be available.

System Requirements

  • Python 3.5 - 3.14
  • Windows x64/x86, Linux x64, macOS x64/ARM64
  • No additional software required

More Resources

Also available for other platforms: .NET | Java | Node.js


Product Page | Docs | Demos | API Reference | Blog | Free Support | Temporary License


Direct Download

Icons

GroupDocs.Watermark for Python via .NET 26.6 Windows

Self-contained Python wheel of GroupDocs.Watermark 26.6 for Windows (x64). Compatible with Python 3.5-3.14. No external dependencies required. Add, search and remove watermarks in documents.

Added: 26/6/2026 Downloads:

Download

File Size: 128.13MB

Icons

GroupDocs.Watermark for Python via .NET 26.6 Linux

Self-contained Python wheel of GroupDocs.Watermark 26.6 for Linux (x64). Compatible with Python 3.5-3.14. Requires libgdiplus, libfontconfig1, and fonts (e.g. ttf-mscorefonts-installer). Add, search and remove watermarks in documents.

Added: 26/6/2026 Downloads:

Download

File Size: 127.48MB

Icons

GroupDocs.Watermark for Python via .NET 26.6 macOS arm64

Self-contained Python wheel of GroupDocs.Watermark 26.6 for macOS arm64 (Apple Silicon). Compatible with Python 3.5-3.14. Requires mono-libgdiplus (brew install mono-libgdiplus). Add, search and remove watermarks in documents.

Added: 26/6/2026 Downloads:

Download

File Size: 127.3MB

Icons

GroupDocs.Watermark for Python via .NET 26.6 macOS amd64

Self-contained Python wheel of GroupDocs.Watermark 26.6 for macOS amd64 (Intel). Compatible with Python 3.5-3.14. Requires mono-libgdiplus (brew install mono-libgdiplus). Add, search and remove watermarks in documents.

Added: 26/6/2026 Downloads:

Download

File Size: 129.42MB

Icons

GroupDocs.Watermark for Python via .NET 25.12 Linux x86_64

This wheel contains GroupDocs.Watermark version 25.12, compatible with Python 3 and optimized for Linux 64-bit systems

Added: 12/12/2025 Downloads:

Download

File Size: 136.71MB

Icons

GroupDocs.Watermark for Python via .NET 25.12 MacOs Arm

This contains the WHL package of GroupDocs.Watermark for Python via .NET

Added: 12/12/2025 Downloads:

Download

File Size: 130.72MB

Icons

GroupDocs.Watermark for Python via .NET 25.12 MacOS x86_64

This whl contains GroupDocs.Watermark version 25.12, compatible with Python 3 and optimized for MacOS 64-bit systems.

Added: 12/12/2025 Downloads:

Download

File Size: 133.61MB

Icons

GroupDocs.Watermark for Python via .NET 25.12 Windows AMD64

This wheel contains GroupDocs.Watermark for Python via .NET version 25.12, built for Windows and targeting the AMD64 architecture.

Added: 12/12/2025 Downloads:

Download

File Size: 127.3MB

Icons

GroupDocs.Watermark for Python via .NET 25.12 Windows x32

This wheel contains GroupDocs.Watermark version 25.12, compatible with Python 3 and optimized for Windows 32-bit systems.

Added: 12/12/2025 Downloads:

Download

File Size: 122.14MB

Icons

GroupDocs.Watermark for Python via .NET 25.3 Linux x86_64

This wheel contains GroupDocs.Watermark version 25.3, compatible with Python 3 and optimized for Linux 64-bit systems

Added: 26/3/2025 Downloads:

Download

File Size: 130.5MB

Icons

GroupDocs.Watermark for Python via .NET 25.3 MacOS x86_64

This whl contains GroupDocs.Watermark version 25.3, compatible with Python 3 and optimized for MacOS 64-bit systems.

Added: 26/3/2025 Downloads:

Download

File Size: 130.82MB

Icons

GroupDocs.Watermark for Python via .NET 25.3 Windows AMD64

This wheel contains GroupDocs.Watermark for Python via .NET version 25.3, built for Windows and targeting the AMD64 architecture.

Added: 26/3/2025 Downloads:

Download

File Size: 124.06MB

Icons

GroupDocs.Watermark for Python via .NET 25.3 Windows x32

This wheel contains GroupDocs.Watermark version 25.3, compatible with Python 3 and optimized for Windows 32-bit systems.

Added: 26/3/2025 Downloads:

Download

File Size: 119.02MB

Icons

GroupDocs.Watermark for Python via .NET 24.9.1 MacOS ARM64

This wheel contains GroupDocs.Viewer for Python via .NET version 24.9.1, built for MacOS and targeting the ARM64 architecture.

Added: 16/9/2024 Downloads:

Download

File Size: 157.97MB

Icons

GroupDocs.Watermark for Python via .NET 24.9.1 Windows AMD64

This wheel contains GroupDocs.Watermark for Python via .NET version 24.9.1, built for Windows and targeting the AMD64 architecture.

Added: 16/9/2024 Downloads:

Download

File Size: 159.09MB

Icons

GroupDocs.Watermark for Python via .NET 24.9.1 Windows x32

This wheel contains GroupDocs.Watermark version 24.9.1, compatible with Python 3 and optimized for Windows 32-bit systems.

Added: 16/9/2024 Downloads:

Download

File Size: 154.46MB

Icons

GroupDocs.Watermark for Python via .NET 24.5 Windows AMD64

This wheel contains GroupDocs.Watermark for Python via .NET version 24.5, built for Windows and targeting the AMD64 architecture.

Added: 24/6/2024 Downloads:

Download

File Size: 77.19MB

Icons

GroupDocs.Watermark for Python via .NET 24.5.0 Windows x32

This wheel contains GroupDocs.Watermark version 24.5.0, compatible with Python 3 and optimized for Windows 32-bit systems.

Added: 24/6/2024 Downloads:

Download

File Size: 72.66MB