Related blog posts:
Last active
March 14, 2022 08:06
-
-
Save GroupDocsGists/82c10a1efcae60359901cecbda8f6c20 to your computer and use it in GitHub Desktop.
Annotate PDF using Java - Add or Remove Annotations of PDF files
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Add multiple annotations to PDF using Java | |
// Adding Arrow, Area, Oval (Ellipse), Distance annotations to PDF with messages and replies using Java | |
final Annotator annotator = new Annotator(Constants.INPUT); | |
// Setting Replies | |
Reply reply1 = new Reply(); | |
reply1.setComment("Please look in to these issues."); | |
reply1.setRepliedOn(Calendar.getInstance().getTime()); | |
Reply reply2 = new Reply(); | |
reply2.setComment("Change Description"); | |
reply2.setRepliedOn(Calendar.getInstance().getTime()); | |
Reply reply3 = new Reply(); | |
reply2.setComment("On-Premises APIs"); | |
reply2.setRepliedOn(Calendar.getInstance().getTime()); | |
Reply reply4 = new Reply(); | |
reply2.setComment("Add images as well."); | |
reply2.setRepliedOn(Calendar.getInstance().getTime()); | |
java.util.List<Reply> replies = new ArrayList<Reply>(); | |
replies.add(reply1); | |
replies.add(reply2); | |
replies.add(reply3); | |
replies.add(reply4); | |
// Arrow Annotation ================================= | |
ArrowAnnotation arrow = new ArrowAnnotation(); | |
arrow.setBox(new Rectangle(560, 250, 60, -60)); | |
arrow.setCreatedOn(Calendar.getInstance().getTime()); | |
arrow.setMessage("This image is little upwards."); | |
arrow.setOpacity(0.7); | |
arrow.setPenColor(-3407872); | |
arrow.setPenWidth((byte) 2); | |
arrow.setReplies(replies.subList(0, 1)); | |
// Area Annotation =================================== | |
AreaAnnotation area = new AreaAnnotation(); | |
area.setBox(new Rectangle(50, 100, 500, 100)); | |
area.setCreatedOn(Calendar.getInstance().getTime()); | |
area.setMessage("Annotate documents and images."); | |
area.setOpacity(0.7); | |
area.setPenColor(-13076963); | |
area.setPenStyle(PenStyle.Dash); | |
area.setPenWidth((byte) 3); | |
area.setReplies(replies.subList(1, 2)); | |
// Oval or Ellipse Annotation ======================== | |
EllipseAnnotation ellipse = new EllipseAnnotation(); | |
ellipse.setBox(new Rectangle(275, 505, 300, 80)); | |
ellipse.setCreatedOn(Calendar.getInstance().getTime()); | |
ellipse.setMessage("Shows all the available Annotation APIs."); | |
ellipse.setOpacity(0.7); | |
ellipse.setPenColor(-16034924); | |
ellipse.setPenStyle(PenStyle.Dot); | |
ellipse.setPenWidth((byte) 3); | |
ellipse.setReplies(replies.subList(2, 3)); | |
// Distance Annotation =============================== | |
DistanceAnnotation distance = new DistanceAnnotation(); | |
distance.setBox(new Rectangle(775, 235, 0, 150)); | |
distance.setCreatedOn(Calendar.getInstance().getTime()); | |
distance.setMessage("This is the heading area"); | |
distance.setOpacity(0.7); | |
distance.setPenColor(-21197); | |
distance.setPenStyle(PenStyle.Solid); | |
distance.setPenWidth((byte) 1); | |
distance.setReplies(replies.subList(3, 4)); | |
// Adding Annotations ================================= | |
annotator.add(arrow); | |
annotator.add(area); | |
annotator.add(ellipse); | |
annotator.add(distance); | |
// Saving annotated PDF =============================== | |
annotator.save(outputPath); | |
annotator.dispose(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Add Arrow annotation to PDF using Java | |
final Annotator annotator = new Annotator("document.pdf"); | |
ArrowAnnotation arrow = new ArrowAnnotation(); | |
arrow.setBox(new Rectangle(100, 100, 100, 100)); // (x, y, width, height) | |
annotator.add(arrow); | |
annotator.save("path/annotated-with-arrow.pdf"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Distance Annotation using Java | |
final Annotator annotator = new Annotator("document.pdf"); | |
// Distance Annotation | |
DistanceAnnotation distance = new DistanceAnnotation(); | |
distance.setBox(new Rectangle(775, 235, 0, 150)); | |
// add to document | |
annotator.add(area); | |
annotator.save("path/annotated-with-distance.pdf"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Add Oval or Ellipse Annotation in PDF using Java | |
final Annotator annotator = new Annotator("document.pdf"); | |
// Oval or Ellipse Annotation | |
EllipseAnnotation ellipse = new EllipseAnnotation(); | |
ellipse.setBox(new Rectangle(275, 505, 300, 80)); | |
// add to document | |
annotator.add(area); | |
annotator.save("path/annotated-with-ellipse.pdf"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Add Area Annotation or Rectangle Annotation to PDF using Java | |
final Annotator annotator = new Annotator("document.pdf"); | |
AreaAnnotation area = new AreaAnnotation(); | |
area.setBox(new Rectangle(50, 100, 500, 100)); | |
area.setCreatedOn(Calendar.getInstance().getTime()); | |
area.setMessage("Annotate documents and images."); | |
area.setOpacity(0.7); | |
area.setPenColor(-13076963); | |
area.setPenStyle(PenStyle.Dash); | |
area.setPenWidth((byte) 3); | |
// add to document | |
annotator.add(area); | |
annotator.save("path/annotated-with-rectangle.pdf"); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Remove selected annotations from the PDF document using Java | |
final Annotator annotator = new Annotator("document.pdf"); | |
java.util.List<AnnotationBase> annotations = annotator.get(); | |
annotator.remove(annotations.get(0)); | |
// Save the PDF with the removed annotation(s). | |
annotator.save("path/annotations-removed.pdf", new SaveOptions()); | |
annotator.dispose(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Remove selected annotations from the PDF document using Java | |
final Annotator annotator = new Annotator("document.pdf"); | |
java.util.List<Integer> removalList = new java.util.ArrayList<>(); | |
removalList.add(0); | |
removalList.add(1); | |
annotator.remove(removalList); | |
// Save the PDF with the removed annotation(s). | |
annotator.save("path/annotations-removed.pdf", new SaveOptions()); | |
annotator.dispose(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Remove all the annotations from the PDF document using Java | |
final Annotator annotator = new Annotator("document.pdf"); | |
SaveOptions saveOptions = new SaveOptions(); | |
saveOptions.setAnnotationTypes(AnnotationType.None); | |
// Save the PDF with no more annotations in it. | |
annotator.save("path/annotations-removed.pdf", saveOptions); | |
annotator.dispose(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment