import com.groupdocs.annotation.Annotator;
import com.groupdocs.annotation.licenses.License;
import com.groupdocs.annotation.models.Point;
import com.groupdocs.annotation.models.Reply;
import com.groupdocs.annotation.models.annotationmodels.HighlightAnnotation;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

public class HighlightTextinPDFusingJava
{
    public static void main(String[] args) {

        // Set License to avoid the limitations of Annotation library
        License license = new License();
        license.setLicense("Conholdate.Annotator.lic");

        Annotator annotator = new Annotator("input.pdf");
        try {
            // Create an instance of Reply class and add comments
            Reply reply1;
            reply1 = new Reply();
            reply1.setComment("First comment");
            reply1.setRepliedOn(Calendar.getInstance().getTime());

            Reply reply2 = new Reply();
            reply2.setComment("Second comment");
            reply2.setRepliedOn(Calendar.getInstance().getTime());

            java.util.List<Reply> replies =  new ArrayList<Reply>();
            replies.add(reply1);
            replies.add(reply2);

            Point point1 = new Point(80, 730);
            Point point2 = new Point(240, 730);
            Point point3 = new Point(80, 650);
            Point point4 = new Point(240, 650);

            List<Point> points = new ArrayList<Point>();
            points.add(point1);
            points.add(point2);
            points.add(point3);
            points.add(point4);

            // Create an instance of HighlightAnnotation class and set options
            HighlightAnnotation highlight = new HighlightAnnotation();
            highlight.setBackgroundColor(65535);
            highlight.setCreatedOn(Calendar.getInstance().getTime());
            highlight.setFontColor(0);
            highlight.setMessage("This is highlight annotation");
            highlight.setOpacity(0.5);
            highlight.setPageNumber(0);
            highlight.setPoints(points);
            highlight.setReplies(replies);

            // Add annotation and save to file
            annotator.add(highlight);
            // Save the final output PDF to disk
            annotator.save("result.pdf");
        } finally {
            if (annotator != null) {
                annotator.dispose();
            }
        }
    }
}