Skip to content

groupdocs-annotation/GroupDocs.Annotation-for-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

183 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub

Java Library for Document Annotation

GroupDocs.Annotation for Java is a Document Annotation API that supports over 13 different annotation types for over 50 document formats with full control over annotation's appearance.

Important: Demo Applications Only

The projects in the Demos folder and the Docker images published as groupdocs/annotation are sample applications intended to demonstrate GroupDocs.Annotation for Java features.

They are not production-ready services and must not be exposed to the public internet without additional hardening.

Before using a demo in any shared or production-like environment:

  • Run it on localhost or a trusted private network only
  • Do not publish Docker containers directly to the internet without authentication, a reverse proxy, and network restrictions
  • Treat file upload, browse, and download features as untrusted input — validate and sandbox file paths in your own integration
  • Add authentication, authorization, rate limiting, and logging appropriate for your security requirements
  • Keep GroupDocs.Annotation and all dependencies up to date

For production integrations, use the library (Examples, documentation) and implement your own secure document storage and API layer instead of deploying these demos as-is.

Directory Description
Demos GroupDocs.Annotation for Java Dropwizard and Spring Demo projects.
Examples Java examples and sample documents for you to get started quickly.

Demos

All web demos run on http://localhost:8080/annotation/ and provide document annotation with zoom, thumbnails, download/upload, and print support.

Demo Framework Build Library Version
Spring Spring Boot 2.0 mvn clean spring-boot:run 25.6
Dropwizard Dropwizard 1.3 mvn clean compile exec:java 25.6

Docker

Pre-built Docker images are available on Docker Hub.

docker pull groupdocs/annotation:latest
docker run -p 8080:8080 groupdocs/annotation:latest

Security notice: Docker images ship with demo defaults (e.g. upload and browse enabled, no authentication). Use them for local evaluation only. Do not expose port 8080 to untrusted networks without adding authentication, path validation, and other security controls required by your organization.

Available image tags follow the pattern {version}-java-{jdk}-bullseye-{framework}:

Tag JDK Framework
{ver}-java-openjdk8-bullseye-spring Eclipse Temurin 8 Spring
{ver}-java-openjdk11-bullseye-spring Eclipse Temurin 11 Spring
{ver}-java-openjdk18-bullseye-spring Eclipse Temurin 21 Spring
{ver}-java-openjdk8-bullseye-dropwizard Eclipse Temurin 8 Dropwizard
{ver}-java-openjdk11-bullseye-dropwizard Eclipse Temurin 11 Dropwizard
{ver}-java-openjdk18-bullseye-dropwizard Eclipse Temurin 21 Dropwizard

The latest tag points to the openjdk18-bullseye-spring variant.

The Docker Hub repository overview is generated from docs/docker-hub-overview.md when the Publish Docker Images workflow runs with Push enabled.

Annotate Documents via Java

  • Add, extract, update or remove annotations.
  • Import existing annotations from documents.
  • Add or remove comments.
  • Export annotated documents.
  • Generate document previews & thumbnails.
  • Load password-protected documents.
  • Save annotated pages or pages by range.

Annotation Objects

Graphic Annotation: Area, Arrow, Distance, Ellipse, Point, Polyline, Resource Redaction, TextField
Text Annotation: Highlight, Link, Replacement, Strikeout, Reduction, Underline
Watermark: Diagonal, Horizontal

Get Started with GroupDocs.Annotation for Java

GroupDocs.Annotation for Java requires J2SE 8.0 (1.8) or above. Please install Java first if you do not have it already.

GroupDocs hosts all Java APIs on GroupDocs Artifact Repository, so simply configure your Maven project to fetch the dependencies automatically.

Add Arrow Annotation

    try(final Annotator annotator = new Annotator(Constants.INPUT_DOC)){
        String outputPath = Constants.getOutputFilePath("MinimalAnnotation", FilenameUtils.getExtension(Constants.INPUT_DOC));
        final ArrowAnnotation arrowAnnotation = new ArrowAnnotation();
        arrowAnnotation.setBox(new Rectangle(100, 100, 200, 200));
        annotator.add(arrowAnnotation);
        annotator.save(outputPath);
    }  

Home | Product Page | Documentation | Demos | API Reference | Examples | Blog | Search | Free Support | Temporary License

About

GroupDocs.Annotation for Java examples, plugins, and showcase

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages