// For complete examples and data files, please go to https://github.com/groupdocs-annotation/GroupDocs.Annotation-for-Java
try {
AnnotationConfig cfg = Utilities.getConfiguration();
AnnotationImageHandler annotator = new AnnotationImageHandler(cfg);
annotator.getDocumentDataHandler();
InputStream cleanPdf = new FileInputStream(Utilities.storagePath + File.separator + fileName);
List<AnnotationInfo> annotations = new ArrayList<AnnotationInfo>();
// Distance annotation
AnnotationInfo distanceAnnotation = new AnnotationInfo();
distanceAnnotation.setAnnotationPosition(new Point(852.0, 287.0));
distanceAnnotation.setBox(new Rectangle(248f, 287f, 115f, 25f));
distanceAnnotation.setPageNumber(0);
distanceAnnotation.setPenColor(1201033);
distanceAnnotation.setPenStyle((byte) 0);
distanceAnnotation.setPenWidth((byte) 1);
distanceAnnotation
.setSvgPath("M248.73201877934272,295.5439436619718 l115.28309859154929,-4.192112676056338");
distanceAnnotation.setFieldText("\r\nAnonym A.: 115px");
distanceAnnotation.setType(AnnotationType.Distance);
distanceAnnotation.setCreatorName("Anonym A.");
annotations.add(distanceAnnotation);
// Add annotation to the document
InputStream result = annotator.exportAnnotationsToDocument(cleanPdf, annotations, DocumentType.Pdf);
// Save result stream to file.
OutputStream fileStream = new FileOutputStream(
Utilities.outputPath + File.separator + "annotated-distance.pdf");
IOUtils.copy(result, fileStream);
} catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
e.printStackTrace();
}