Skip to main content

banner

PyPI

Product Page | Documentation | Free Support | Temporary License

Add electronic signatures to documents - text, image, barcode, QR code, digital and stamp signatures.

Key Features

  • Text, image, barcode, QR code, stamp, metadata, form-field and digital (certificate) signatures
  • Search, verify, update and delete existing signatures
  • Document page previews and signature previews, written through your own Python callbacks
  • Custom encryption for QR code and metadata signatures, custom loggers, and external signing (HSM, Azure Key Vault) through a Python custom_sign_hash
  • PDF, Word, Excel, PowerPoint, OpenDocument and image formats

Installation

pip install groupdocs-signature-net

Quick Start

from groupdocs.signature import Signature
from groupdocs.signature.options import TextSignOptions

with Signature("document.pdf") as sig:
    options = TextSignOptions("Approved")
    sig.sign("signed.pdf", options)

Previews and other callbacks

Wherever the engine takes a callback, pass a Python function or object:

from groupdocs.signature import Signature
from groupdocs.signature.options import PreviewOptions

def create_page_stream(page_data):
    return open("page-%d.png" % page_data.page_number, "wb")

def release_page_stream(page_data, page_stream):
    page_stream.close()

with Signature("document.pdf") as sig:
    sig.generate_preview(PreviewOptions(create_page_stream, release_page_stream))

The same works for signature previews (PreviewSignatureOptions), loggers (SignatureSettings(logger)), data_encryption and custom_sign_hash; AGENTS.md in the package lists the shapes.

Security defaults

The 26.9 engine rejects expired or not-yet-valid signing certificates (DigitalSignOptions.allow_expired / allow_not_yet_valid opt back in), does not load external resources (LoadOptions.skip_external_resources, whitelisted_resources), signs PDFs with SHA-256 and verifies PDF signatures cryptographically.

System Requirements

  • Python 3.5 - 3.14, pip 20.3 or newer
  • Windows x64, Linux x64, macOS x64/ARM64 — 64-bit Python only; there is no 32-bit Windows wheel
  • Linux: glibc 2.27 or newer (e.g. Ubuntu 18.04+, Debian 10+, RHEL 8+), plus ICU, fontconfig, libgdiplus and the Microsoft core fonts: apt-get install libicu-dev libfontconfig1 libgdiplus ttf-mscorefonts-installer (on Debian, enable the contrib component first). libgdiplus is needed for stamp and text-as-image signatures, for barcode, QR code and image signatures with a border or transparency, for any signature on PowerPoint and image files, and for text and stamp signature previews; the core fonts for PDF text and digital signatures, whose default fonts are Times New Roman and Arial.
  • macOS 12 or newer, Intel or Apple Silicon: brew install mono-libgdiplus for the same features.

Troubleshooting

Error Platform Fix
The type initializer for 'Gdip' threw an exception / DllNotFoundException: libgdiplus Linux/macOS Install libgdiplus: apt-get install libgdiplus / brew install mono-libgdiplus
Font Times New Roman was not found / Font Arial was not found Linux Install the Microsoft core fonts: apt-get install ttf-mscorefonts-installer (Debian: enable contrib), then fc-cache -f
Couldn't find a valid ICU package, or the process aborts on first use Linux Install ICU: apt-get install libicu-dev; do NOT set DOTNET_SYSTEM_GLOBALIZATION_INVARIANT
is not a supported wheel on this platform, or No matching distribution found Linux/macOS The OS is older than the wheel needs (glibc 2.27, macOS 12), or pip is older than 20.3: python -m pip install --upgrade pip. On an Intel Mac, a Python built against an old SDK reports macOS 10.16 — use pip 24.1+ or SYSTEM_VERSION_COMPAT=0 pip install groupdocs-signature-net
The signing certificate expired on ... all Since 26.9 expired certificates are rejected; renew it, or set allow_expired = True on the DigitalSignOptions
The number of pages cannot exceed 2 in a trial version, or search returns an evaluation notice instead of the signature's text all No license is applied: set GROUPDOCS_LIC_PATH or call License().set_license(path). A damaged or wrong license file is accepted without an error, so check a signed page for the evaluation line

Upgrading from 26.1

26.1 was built by an earlier toolchain; the modules are the same, but check these:

  • A few names changed: z_order → zorder, x_ad_es_type → xad_es_type, h_corner_radius / v_corner_radius → hcorner_radius / vcorner_radius, FileType.G_ZIP → GZIP, and nine BarcodeTypes constants lost an underscore (GS1_CODE_128 → GS1_CODE128).
  • Assigning an attribute a class does not have now raises AttributeError with a suggestion; 26.1 accepted it silently, so a renamed property was simply ignored.
  • Engine errors raise GroupDocsSignatureException (or IncorrectPasswordException / PasswordRequiredException) instead of RuntimeError("Proxy error(...)"), and they do not derive from RuntimeError.
  • Preview page numbers are 0-based (page_data.page_number is 0 for the first page).
  • GROUPDOCS_LIC_PATH is applied at import.

The release notes have the full list.

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/signature/python-net/llms-full.txt
    • Per page: append .md to any docs URL

Metadata

Release files for groupdocs-signature-net 26.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for groupdocs-signature-net 26.10.0
File
groupdocs_signature_net-26.10.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
groupdocs_signature_net-26.10.0-py3-none-manylinux_2_27_x86_64.whl Python 3 none Linux glibc 2.27+ x86-64 Details
groupdocs_signature_net-26.10.0-py3-none-macosx_12_0_x86_64.whl Python 3 none macOS 12.0+ x86-64 Details
groupdocs_signature_net-26.10.0-py3-none-macosx_12_0_arm64.whl Python 3 none macOS 12.0+ ARM64 Details

Total release size: 558.0 MB

Release files / groupdocs_signature_net-26.10.0-py3-none-win_amd64.whl

Download URL groupdocs_signature_net-26.10.0-py3-none-win_amd64.whl
Size 139.5 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
c1ceae9d0b6c660f3dfcff8fa8ec9a9ba7a8627d8c6d3db2fc55a9235575580a
BLAKE2b-256 checksum
How to use checksums
08b557b6516954a5eea7c1df765c4001a426d7885df5bfbef0d420256bb0a16f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / groupdocs_signature_net-26.10.0-py3-none-manylinux_2_27_x86_64.whl

Download URL groupdocs_signature_net-26.10.0-py3-none-manylinux_2_27_x86_64.whl
Size 138.9 MB
Tags Linux glibc 2.27+ x86-64 Python 3
SHA-256 checksum
How to use checksums
f4452e913f529321c763ffc723326b2af53e7a46f6eef6032b815bc0f0752dba
BLAKE2b-256 checksum
How to use checksums
f87b79a7aec46743db4c6cbab48a39390568ca2ab2467dbc1c83bb2c6e0f0c65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / groupdocs_signature_net-26.10.0-py3-none-macosx_12_0_x86_64.whl

Download URL groupdocs_signature_net-26.10.0-py3-none-macosx_12_0_x86_64.whl
Size 140.9 MB
Tags Python 3 macOS 12.0+ x86-64
SHA-256 checksum
How to use checksums
3f0b01d3c7e27ad108c96ff224d14bb9daefa0e60b142dc392a0bbe9a36fb705
BLAKE2b-256 checksum
How to use checksums
d4c41ca86150e615312297d5f8dec285eb0037d4d9b575f1ff16881094b4ed3c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release files / groupdocs_signature_net-26.10.0-py3-none-macosx_12_0_arm64.whl

Download URL groupdocs_signature_net-26.10.0-py3-none-macosx_12_0_arm64.whl
Size 138.7 MB
Tags Python 3 macOS 12.0+ ARM64
SHA-256 checksum
How to use checksums
091afb172e42546fb667c69a8ec1283121d2808198eeed8bcb50e11058dd75e7
BLAKE2b-256 checksum
How to use checksums
d8eb4f31941b5f314eee19b94fe3b124b89df731bcaae1befd1139abf5838ac7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.11.16

Release history Release notifications | RSS feed

This release

26.10.0 This release

4 release files

26.1

5 release files

25.4

4 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page