PDF Annotations are additional objects added to a PDF document. Sometimes you may need to extract these additional data from the PDF file so as to learn about the annotation details without opening the document. In this article, we will describe how to get the annotations from PDF in Java using Spire.PDF for Java.
Install Spire.PDF for Java
First of all, you need to add the Spire.PDF.jar file as a dependency in your Java program. The JAR file can be downloaded from this link. If you use Maven, you can easily import the JAR file by adding the following code to your project's pom.xml file.
<repositories> <repository> <id>com.e-iceblue</id> <name>e-iceblue</name> <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf</artifactId> <version>10.10.7</version> </dependency> </dependencies>
Get Annotations from a PDF File
Spire.PDF for Java offers PdfPageBase.getAnnotationsWidget() method to get the annotation collection of the specified page of the document.
The following are the steps to get all the annotations from the first page of PDF file:
- Create an object of PdfDocument class.
- Load a sample PDF document using PdfDocument.loadFromFile() method.
- Create a StringBuilder object.
- Get the annotation collection of the first page of the document by using PdfPageBase.getAnnotationsWidget() method.
- Loop through the pop-up annotations, after extract data from each annotation using PdfAnnotation.getText()method, then append the data to the StringBuilder instance using StringBuilder.append() method.
- Write the extracted data to a txt document using Writer.write() method.
- Java
import com.spire.pdf.*; import com.spire.pdf.annotations.*; import java.io.FileWriter; public class Test { public static void main(String[] args) throws Exception { //Create an object of PdfDocument class. PdfDocument pdf = new PdfDocument(); //Load the sample PDF document pdf.loadFromFile("Annotations.pdf"); //Get the annotation collection of the first page of the document. PdfAnnotationCollection annotations = pdf.getPages().get(0).getAnnotationsWidget(); //Create a StringBuilder object StringBuilder content = new StringBuilder(); //Traverse all the annotations for (int i = 0; i < annotations.getCount(); i++) { //If it is the pop-up annotations, continue if (annotations.get(i) instanceof PdfPopupAnnotationWidget) continue; //Get the annotations’ author content.append("Annotation Author: " + annotations.get(i).getAuthor()+"\n"); //Get the annotations’ text content.append("Annotation Text: " + annotations.get(i).getText()+"\n"); //Get the annotations’ modified date String modifiedDate = annotations.get(i).getModifiedDate().toString(); content.append("Annotation ModifiedDate: " + modifiedDate+"\n"); //Get the annotations’ name content.append("Annotation Name: " + annotations.get(i).getName()+"\n"); //Get the annotations’ location content.append ("Annotation Location: " + annotations.get(i).getLocation()+"\n"); } //Write to a .txt file FileWriter fw = new FileWriter("GetAnnotations.txt"); fw.write(content.toString()); fw.flush(); fw.close(); } }
Apply for a Temporary License
If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.