HTML JPG PDF XML DOCX
  Product Family
PDF

Add text annotations to PDF documents via Java SDK

API for adding text annotations to PDF documents using Aspose.PDF Cloud Java SDK.

Get Started

How to append text annotations to PDF documents using Aspose.PDF Cloud Java SDK

In order to add annotations to PDF documents via Cloud Java SDK , we’ll use Aspose.PDF Cloud Java SDK This Cloud SDK allows you to easily build cloud-based PDF creator, editor & converter apps in Java language for various cloud platforms. Open Repository package manager, search for Aspose.PDF Cloud and install. You may also use the following command from the Package Manager Console for install it using Maven.

Add Aspose Cloud repository to your application pom.xml

Add Aspose Cloud repository


    <repositories>
        <repository>
            <id>aspose-cloud</id>
            <name>Aspose Cloud Repository</name>
            <url>https://releases.aspose.cloud/java/repo/</url>
        </repository>
    </repositories>

To install the API client library to your local Maven repository, simply execute:

Installation from Github


    mvn clean install

To deploy it to a remote Maven repository instead, configure the settings of the repository and execute:

Deploy Maven repository


    mvn clean deploy

Steps to add text annotations using Java SDK

Aspose.PDF Cloud developers can easily load & append annotations to PDF documents in just a few lines of code.

  1. Uploads the PDF.
  2. Creates a styled text box (with fonts, colors, alignment).
  3. Submits the annotation to the specified page.
  4. Downloads the modified document for local use.
 

This sample code shows adding text annotations to PDF document


    package com.aspose.asposecloudpdfusecases.annotations;

    import java.io.File;
    import java.nio.file.Path;
    import java.nio.file.StandardCopyOption;
    import java.util.ArrayList;
    import java.util.List;
    import com.aspose.asposecloudpdf.api.PdfApi;
    import com.aspose.asposecloudpdf.model.AsposeResponse;
    import com.aspose.asposecloudpdf.model.Color;
    import com.aspose.asposecloudpdf.model.FreeTextAnnotation;
    import com.aspose.asposecloudpdf.model.FreeTextIntent;
    import com.aspose.asposecloudpdf.model.HorizontalAlignment;
    import com.aspose.asposecloudpdf.model.Justification;
    import com.aspose.asposecloudpdf.model.Rectangle;
    import com.aspose.asposecloudpdf.model.TextStyle;

    public class AnnotationAddText {
        public static void Create() {
            String REMOTE_FOLDER   = "Your_Temp_Pdf_Cloud";
            String LOCAL_FOLDER    = "c:\\Samples";
            String PDF_DOCUMENT    = "sample.pdf";
            String PDF_OUTPUT      = "annotation_add_freetext_output.pdf";
            Integer PAGE_NUMBER = 1;

            String NEW_UL_ANNOTATION_TEXT        = "NEW FREE TEXT ANNOTATION";
            String NEW_UL_ANNOTATION_DESCRIPTION = "This is a sample free text annotation";
            String NEW_UL_ANNOTATION_SUBJECT     = "Free Text Box Subject";
            String NEW_UL_ANNOTATION_CONTENTS    = "Free text annotation sample contents";

            try {
                PdfApi pdfApi = new PdfApi(API_KEY, API_SECRET);

                // upload local PDF file to remote storage
                File file = new File(Path.of(LOCAL_FOLDER, PDF_DOCUMENT).toString());
                pdfApi.uploadFile(Path.of(REMOTE_FOLDER , PDF_DOCUMENT).toString(), file, null);
                System.out.println(String.format("File '%s' successfully uploaded!", Path.of(LOCAL_FOLDER, PDF_DOCUMENT).toString()));

                TextStyle textStyle = new TextStyle();
                textStyle.setFontSize(20.);
                textStyle.setForegroundColor(new Color().A(255).G(255));
                textStyle.setBackgroundColor(new Color().A(255).R(255));

                FreeTextAnnotation annotation = new FreeTextAnnotation();
                annotation.setName("Free_Text_Annotation");
                annotation.setRect(new Rectangle().LLX(100.).LLY(350.).URX(450.).URY(400.));
                annotation.setHorizontalAlignment(HorizontalAlignment.CENTER);
                annotation.setIntent(FreeTextIntent.FREETEXTTYPEWRITER);
                annotation.setRichText(NEW_UL_ANNOTATION_TEXT);
                annotation.setSubject(NEW_UL_ANNOTATION_SUBJECT);
                annotation.setContents(NEW_UL_ANNOTATION_CONTENTS);
                annotation.setTitle(NEW_UL_ANNOTATION_DESCRIPTION);
                annotation.setZindex(1);
                annotation.setJustification(Justification.CENTER);
                annotation.setTextStyle(textStyle);

                annotation.setModified("11/20/2025 00:00:00.000 AM");

                List<FreeTextAnnotation> annotations = new ArrayList<>();
                annotations.add(annotation);

                AsposeResponse response = pdfApi.postPageFreeTextAnnotations(PDF_DOCUMENT, PAGE_NUMBER, annotations, null, REMOTE_FOLDER);
                if (response.getCode() != 200)
                    System.err.println("Error: unexpected error when adding annotation! '" + response.getStatus() + "'");
                else{
                    // download changed PDF file from remote folder...
                    File f = pdfApi.downloadFile(Path.of(REMOTE_FOLDER , PDF_DOCUMENT).toString(), null, null);
                    java.nio.file.Files.copy(Path.of(f.getPath()), Path.of(LOCAL_FOLDER, PDF_OUTPUT), StandardCopyOption.REPLACE_EXISTING);
                    System.out.println(String.format("File '%s' successfully dowloaded!", Path.of(LOCAL_FOLDER, PDF_OUTPUT).toString()));                
                    System.out.println("Successfully added annotation in document ! '" + PDF_OUTPUT + "'");
                }
            }
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
 

Work with the annotations in PDF via Java SDK

Adding annotations to a PDF serves many important purposes across different use cases. One of the most common reasons is for review and feedback. Annotations let users highlight specific parts of a document, leave comments, ask questions, or suggest changes. This makes the review process more efficient and organized, especially when multiple collaborators are involved. Add the Annotations into PDF documents with Aspose.PDF Cloud Java SDK.

With our Java SDK you can

  • Add PDF document’s header & footer in text or image format.
  • Add tables & text or image stamps to PDF documents.
  • Append multiple PDF documents to an existing file.
  • Work with PDF attachments, annotations, & form fields.
  • Apply encryption or decryption to PDF documents & set a password.
  • Delete all stamps & tables from a page or entire PDF document.
  • Delete a specific stamp or table from the PDF document by its ID.
  • Replace single or multiple instances of text on a PDF page or from the entire document.
  • Extensive support for converting PDF documents to various other file formats.
  • Extract various elements of PDF files & make PDF documents optimized.
  • You can try out our free App to add the annotations into PDF files online and test the functionality.

  •