Increasingly, busy professionals receive various types of written content in the form of Portable Document Format (PDF) files. This content might be in the form of contracts, financial statements, reports, and even manuals. Often, recipients of this content would like to add notes, highlights, comments, and other markups to these PDF documents. In this article, I am going to introduce how to add text markup annotations and pop-up annotations to PDF by using Free Spire.PDF for Java.
Install Spire.Pdf.jar
If you’re creating a Maven project, you can easily add the jar in your application using the following configurations. For non-Maven projects, download the jar file from this link and add it as a dependency in your application.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.pdf.free</artifactId>
<version>3.9.0</version>
</dependency>
</dependencies>
Example 1. Add Text Markup Annotation
import com.spire.pdf.annotations.PdfAnnotationBorder;
import com.spire.pdf.annotations.PdfTextMarkupAnnotation;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.graphics.PdfFont;
import com.spire.pdf.graphics.PdfFontFamily;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;
public class TextMarkup {
public static void main(String[] args) {
//Create a PdfDocument object
PdfDocument doc = new PdfDocument();
//Load the sample PDF file
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\test.pdf");
//Get the first page
PdfPageBase page = doc.getPages().get(0);
//Find the string to add annotation
PdfTextFind[] results = page.findText("such as security setting").getFinds();
//Create a font
PdfFont font = new PdfFont(PdfFontFamily.Times_Roman, 12);
//Create a PdfTextMarkupAnnotation based on the searched string
PdfTextMarkupAnnotation annotation = new PdfTextMarkupAnnotation("Administrator", "This is a text markup annotation.", results[0].getSearchText(), results[0].getPosition(),font);
annotation.setBorder(new PdfAnnotationBorder(0.5f));
annotation.setTextMarkupColor(new PdfRGBColor(Color.GREEN));
//Add annotation to PDF
page.getAnnotationsWidget().add(annotation);
//Save to file
doc.saveToFile("TextMarkup.pdf");
}
}
Example 2. Add Pop-up Annotation
import com.spire.pdf.annotations.PdfPopupAnnotation;
import com.spire.pdf.annotations.PdfPopupIcon;
import com.spire.pdf.general.find.PdfTextFind;
import com.spire.pdf.graphics.PdfRGBColor;
import java.awt.*;
import java.awt.geom.Rectangle2D;
public class PopupAnnotation {
public static void main(String[] args) {
//Create a PdfDocument object
PdfDocument doc = new PdfDocument();
//Load the sample PDF file
doc.loadFromFile("C:\\Users\\Administrator\\Desktop\\test.pdf");
//Get the first page
PdfPageBase page = doc.getPages().get(0);
//Find the string to add annotation
PdfTextFind[] results = page.findText("high quality.").getFinds();
//Specify the x and y coordinate to add annotation
float x = (float)results[0].getBounds().getMaxX();
float y = (float) results[0].getBounds().getY();
//Create a PdfPopupAnnotation object
PdfPopupAnnotation popupAnnotation = new PdfPopupAnnotation(new Rectangle2D.Float(x,y,0,0));
popupAnnotation.setText("This is a pop-up annotation");
popupAnnotation.setIcon(PdfPopupIcon.Note);
popupAnnotation.setColor(new PdfRGBColor(Color.YELLOW));
//Add annotation to PDF
page.getAnnotationsWidget().add(popupAnnotation);
//Save to file
doc.saveToFile("PopupAnnotation.pdf");
}
}
Top comments (0)