GroupDocs.Annotation for Python via .NET 26.6 Release Notes
GroupDocs.Annotation for Python via .NET 26.6 brings the full annotation capabilities of the underlying .NET library to Python, shipped as a self-contained wheel on PyPI. Add annotations, markups, and comments to documents and images — highlight, underline, strike out, or replace text; draw area, ellipse, point, arrow, distance, and polyline shapes; add watermarks, text fields, hyperlinks, and image stamps; thread replies; and get or remove annotations — all on-premise, with no MS Office, OpenOffice, or separate .NET runtime required.
Full List of Changes in This Release
| Key | Category | Summary |
|---|---|---|
| ANNOTATIONPYTHONNET-1 | New Feature | Initial release of GroupDocs.Annotation for Python via .NET — self-contained wheels for Windows, Linux, and macOS, exposing the full annotation API through a Pythonic, AI-friendly surface. |
This is the first release of the Python-via-.NET wrapper for GroupDocs.Annotation. The complete, runnable examples are available in the GroupDocs.Annotation for Python via .NET repository and throughout the documentation.
Installation
pip install groupdocs-annotation-net
Quick start
from groupdocs.annotation import Annotator
from groupdocs.annotation.models import Rectangle
from groupdocs.annotation.models.annotation_models import AreaAnnotation
from groupdocs.pydrawing import Color
with Annotator("document.pdf") as annotator:
area = AreaAnnotation()
area.box = Rectangle(100, 100, 100, 100)
area.background_color = Color.yellow.to_argb() # colors are ARGB integers
area.page_number = 0 # page_number is 0-based
annotator.add(area)
annotator.save("annotated.pdf")
Major Features
Graphic annotations
Draw area, ellipse, point, arrow, distance, and polyline shapes, positioned by a Rectangle box. Colors are packed ARGB integers (use groupdocs.pydrawing.Color.<name>.to_argb()).
from groupdocs.annotation.models.annotation_models import AreaAnnotation, EllipseAnnotation
from groupdocs.annotation.models import Rectangle
from groupdocs.pydrawing import Color
area = AreaAnnotation()
area.box = Rectangle(100, 100, 200, 80)
area.background_color = Color.yellow.to_argb()
area.page_number = 0
ellipse = EllipseAnnotation()
ellipse.box = Rectangle(100, 250, 150, 80)
ellipse.page_number = 0
with Annotator("document.pdf") as annotator:
annotator.add([area, ellipse])
annotator.save("annotated.pdf")
Text markup
Highlight, underline, strike out, squiggly-underline, redact, or replace text. Text-markup annotations are positioned by the corner Points of the target text region.
from groupdocs.annotation.models.annotation_models import HighlightAnnotation
from groupdocs.annotation.models import Point
from groupdocs.pydrawing import Color
highlight = HighlightAnnotation()
highlight.points = [Point(80, 600), Point(300, 600), Point(80, 575), Point(300, 575)]
highlight.background_color = Color.yellow.to_argb()
highlight.page_number = 0
Watermarks, text fields, links, and image stamps
Add a WatermarkAnnotation (text, angle, alignment), a TextFieldAnnotation, a LinkAnnotation (with a URL), or an ImageAnnotation (stamp an image at a box).
Comments and replies
Attach an author (User) and a threaded discussion (Reply list) to any annotation.
from groupdocs.annotation.models import Reply, User, Role
reply = Reply()
reply.comment = "Please review"
reply.user = User(name="Tom", role=Role.EDITOR)
area.replies = [reply]
Manage annotations
Read annotations with annotator.get(), filter by AnnotationType, and remove by id, instance, or list:
with Annotator("annotated.pdf") as annotator:
annotations = annotator.get()
annotator.remove(annotation_id=annotations[0].id)
annotator.save("output.pdf")
Pythonic, AI-friendly API
The entire .NET API is exposed through Python-native naming: classes use PascalCase, methods and properties use snake_case (auto-mapped to the underlying .NET PascalCase), and enum values use UPPER_SNAKE_CASE. The wheel bundles an AGENTS.md reference (discovered at groupdocs/annotation/AGENTS.md) for AI coding assistants such as Claude Code, Cursor, and GitHub Copilot, and the documentation is available in an LLM-optimized form and via the GroupDocs MCP server.
Supported Document Formats
| Category | Formats |
|---|---|
| Word Processing | DOC, DOCX, DOCM, DOT, DOTX, DOTM, RTF, ODT |
| Spreadsheets | XLS, XLSX, XLSM, XLSB, ODS |
| Presentations | PPT, PPTX, PPS, PPSX, ODP |
| Fixed-Layout | |
| Images | TIF, TIFF, JPG, JPEG, PNG, BMP |
| CAD | DWG, DXF |
| Diagram | VSD, VSDX, VSDM, VSS, VSX, VSSX, VST, VSTM |
| EML, EMLX | |
| Web | HTM, HTML |
See the full list on the supported document formats page.
Public API Surface
Classes
Annotator— entry point; open by path or stream,add(),update(),get(),remove(),save(),.documentDocument—get_document_info(),generate_preview(),add_image_to_document()FileType,IDocumentInfo— format and document metadataLicense,Metered— licensing APIsAnnotatorSettings— logger and cache configuration
Annotation models (groupdocs.annotation.models.annotation_models)
AreaAnnotation, ArrowAnnotation, DistanceAnnotation, EllipseAnnotation, HighlightAnnotation, ImageAnnotation, LinkAnnotation, PointAnnotation, PolylineAnnotation, ReplacementAnnotation, ResourcesRedactionAnnotation, SquigglyAnnotation, StrikeoutAnnotation, TextFieldAnnotation, TextRedactionAnnotation, UnderlineAnnotation, WatermarkAnnotation
Support models & options
Rectangle,Point,User,Role,Reply(groupdocs.annotation.models)AnnotationType,LoadOptions,SaveOptions,PreviewOptions,PreviewFormats(groupdocs.annotation.options)
Exceptions
GroupDocsAnnotationException, AnnotatorException, CorruptedOrDamagedFileException, and related types in groupdocs.annotation.exceptions.
Platform Wheels
The release ships as pre-built, self-contained wheels for the following platforms (no separate .NET runtime required):
| Platform | Wheel |
|---|---|
| Windows x64 | groupdocs_annotation_net-26.6.0-py3-none-win_amd64.whl |
| Linux x64 | groupdocs_annotation_net-26.6.0-py3-none-manylinux1_x86_64.whl |
| macOS x64 | groupdocs_annotation_net-26.6.0-py3-none-macosx_10_14_x86_64.whl |
| macOS ARM64 | groupdocs_annotation_net-26.6.0-py3-none-macosx_11_0_arm64.whl |
System Requirements
- Python: 3.5 – 3.14
- Platforms: Windows x64, Linux x64, macOS x64/ARM64
- No external software (MS Office / OpenOffice) required. On Linux install
libgdiplus,libfontconfig1, andlibicu-dev; on macOS installmono-libgdiplusvia Homebrew.
Evaluation Mode
The API works without a license in evaluation mode, with these limitations:
- Evaluation badges/watermarks are placed on the output document.
There is no per-process document-open limit in evaluation mode. To remove the evaluation watermark, apply a license or request a free 30-day temporary license:
from groupdocs.annotation import License
License().set_license(license_path="path/to/license.lic")
Or set the environment variable (auto-applied at import):
export GROUPDOCS_LIC_PATH="path/to/license.lic"
Public API changes
Initial Python-via-.NET release. This wrapper tracks the underlying GroupDocs.Annotation engine.