GroupDocs.Annotation embeds collaborative annotation into your apps. Add, import, export, render, and manage comments, highlights, redactions, watermarks, and drawings across PDF, DOCX, PPTX, XLSX, images, CAD, and more—without external tools.
- Released GroupDocs.Annotation 26.6 for .NET, Java, and Python via .NET — see the release notes for the latest fixes and improvements.
- New Python via .NET port: annotate PDF, Office, image, and CAD files from Python with no Microsoft Office or Adobe Acrobat required.
- Refreshed code examples and documentation across all three platforms.
Server-side API to render, add, edit, remove, import, export, and search annotations in Office, PDF, images, and CAD.
- GroupDocs.Annotation-for-.NET: Core API with rendering, import/export, thumbnails, and cache support.
Repo & examples: https://github.com/groupdocs-annotation/GroupDocs.Annotation-for-.NET - Demos & UI samples: Showcase projects for web viewers and annotation workflows.
Repo: https://github.com/groupdocs-annotation/GroupDocs.Annotation-for-.NET/tree/master/Demos
// Add annotations to a PDF and save only annotated pages
using (var annotator = new Annotator("input.pdf"))
{
var area = new AreaAnnotation
{
Box = new Rectangle(100, 100, 140, 120),
BackgroundColor = 65535, // colors are ARGB integers
PageNumber = 0 // PageNumber is 0-based
};
var ellipse = new EllipseAnnotation
{
Box = new Rectangle(200, 140, 120, 120),
BackgroundColor = 16711680,
PageNumber = 2
};
annotator.Add(new List<AnnotationBase> { area, ellipse });
annotator.Save("result.pdf", new SaveOptions { OnlyAnnotatedPages = true });
}Native Java library for adding, rendering, and exporting annotations across PDF, Office, images, and CAD.
// Quick Java example: add a highlight and save
try (Annotator annotator = new Annotator("contract.pdf")) {
HighlightAnnotation highlight = new HighlightAnnotation();
highlight.setPageNumber(0); // page numbers are 0-based
highlight.setPoints(Arrays.asList(
new Point(80, 120), new Point(220, 120),
new Point(220, 150), new Point(80, 150)
));
annotator.add(highlight);
annotator.save("contract-annotated.pdf");
}Python wrapper over the .NET engine — add, get, remove, import/export annotations and threaded comments across PDF, Office, images, and CAD, with no MS Office installation required.
- Repository & examples: https://github.com/groupdocs-annotation/GroupDocs.Annotation-for-Python-via-.NET
- PyPI: https://pypi.org/project/groupdocs-annotation-net/
# Add an area annotation to a PDF and save the result
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("input.pdf") as annotator:
area = AreaAnnotation()
area.box = Rectangle(100, 100, 140, 120)
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("result.pdf")- Review and approval workflows with highlights, stamps, and threaded comments.
- Legal and compliance redaction of sensitive text and regions before sharing.
- Engineering and architecture markups on CAD drawings with shapes and measurements.
- Customer support and QA feedback directly on product docs, manuals, and images.
- Publishing workflows: watermarking drafts, exporting annotations, and creating thumbnails.
- 40+ formats: PDF, DOCX/DOC, XLSX/XLS, PPTX/PPT, VSDX/VSD, DWG/DXF, TIFF/JPG/PNG/BMP, HTML, MSG/EML, ODT/ODS/ODP, RTF, TXT, CSV, and more.
- Annotation objects: area, point, polyline, distance, ellipse, arrow, text field; highlight, underline, strikeout, replacement, link; diagonal/horizontal watermarks.
- Import/export: load existing annotations, export to the original format, or serialize annotations to XML.
- Rendering: view documents as images, generate previews/thumbnails, and render specific pages or regions.
- Loading & cache: load documents from local disk, stream, URL, Amazon S3, Azure Blob, or FTP, with a built-in local cache and pluggable custom cache providers.
- Security & control: password-protected files, page-range processing, remove or update annotations programmatically.
- Office: DOC, DOCX, DOCM, DOT, DOTM, DOTX, RTF; XLS, XLSX, XLSM, XLSB; PPT, PPTX, PPS, PPSX; VSD, VSDX, VSS, VST
- Portable: PDF (including PDF/A profiles)
- Images: TIF, TIFF, JPG, JPEG, PNG, BMP
- CAD: DWG, DXF
- Email: EML, MSG
- Web & Other: HTML, ODT, ODS, ODP, DCM, TXT
- .NET:
Install-Package GroupDocs.Annotationordotnet add package GroupDocs.Annotation - Java: Add the
groupdocs-annotationdependency from the GroupDocs Repository. - Python (via .NET):
pip install groupdocs-annotation-net - Run sample projects in the repositories above to annotate PDFs, Office docs, images, or CAD files.
- Documentation and tutorials: https://docs.groupdocs.com/annotation/
- Free support forum: https://forum.groupdocs.com/c/annotation
- Temporary license for full-feature evaluation: https://purchase.groupdocs.com/temporary-license
- Product page and downloads: https://products.groupdocs.com/annotation
document-annotation pdf-annotation office-annotation cad-annotation image-annotation redaction watermarking commenting markup review-workflows collaborative-annotation document-viewer annotation-sdk dotnet-annotation java-annotation pdf-commenting docx-annotation ppt-annotation xls-annotation web-annotation render-annotations