Java Tutorial/PDF/Annotation
Add Annotation
<source lang="java">
import java.io.FileOutputStream; import java.util.HashMap; import java.util.List; import com.lowagie.text.PageSize; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfAnnotation; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfReader; import com.lowagie.text.pdf.PdfStamper; import com.lowagie.text.pdf.SimpleBookmark; public class MainClass {
public static void main(String[] args) throws Exception { BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED); PdfReader reader = new PdfReader("test.pdf"); PdfStamper stamper = new PdfStamper(reader, new FileOutputStream("my.pdf")); stamper.insertPage(1, PageSize.A4); PdfContentByte cb = stamper.getOverContent(1); cb.beginText(); cb.setFontAndSize(bf, 18); cb.setTextMatrix(36, 770); cb.showText("Inserted Title Page"); cb.endText(); stamper.addAnnotation(PdfAnnotation.createText(stamper.getWriter(), new Rectangle(30f, 750f, 80f, 800f), "inserted page", "This page is the title page.", true, null), 1); stamper.close(); }
}</source>
Annotated Images
<source lang="java">
import java.io.FileOutputStream; import com.lowagie.text.Annotation; import com.lowagie.text.Document; import com.lowagie.text.Image; import com.lowagie.text.PageSize; import com.lowagie.text.pdf.PdfWriter; public class MainClass {
public static void main(String[] args) throws Exception { Document document = new Document(PageSize.A4, 50, 50, 50, 50); PdfWriter.getInstance(document, new FileOutputStream("2.pdf")); document.open(); Image gif = Image.getInstance("Logo.gif"); gif.setAnnotation(new Annotation(0, 0, 0, 0, "http://www.jexp.ru")); gif.setAbsolutePosition(30f, 750f); document.add(gif); Image jpeg = Image.getInstance("dog.jpg"); jpeg.setAnnotation(new Annotation("picture", "dog", 0, 0, 0, 0)); jpeg.setAbsolutePosition(120f, 550f); document.add(jpeg); document.close(); }
}</source>
PdfAnnotation and Javascript
<source lang="java">
import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.PdfAction; import com.lowagie.text.pdf.PdfAnnotation; import com.lowagie.text.pdf.PdfWriter; public class MainClass {
public static void main(String[] args) throws Exception { Document document = new Document(); PdfWriter writer = PdfWriter .getInstance(document, new FileOutputStream("2.pdf")); document.open(); PdfAnnotation text = PdfAnnotation.createText(writer, new Rectangle(200f, 250f, 300f, 350f), "Fox", "The fox is quick", true, "Comment"); PdfAnnotation javascript = new PdfAnnotation(writer, 200f, 550f, 300f, 650f, PdfAction .javaScript("app.alert("hi");\r", writer)); Chunk fox = new Chunk("test").setAnnotation(text); Chunk dog = new Chunk("javascript").setAnnotation(javascript); document.add(fox); document.add(dog); document.close(); }
}</source>
Text Annotations
<source lang="java">
import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Rectangle; import com.lowagie.text.pdf.PdfAnnotation; import com.lowagie.text.pdf.PdfWriter; public class MainClass {
public static void main(String[] args) throws Exception { Document document = new Document(); PdfWriter writer = PdfWriter .getInstance(document, new FileOutputStream("2.pdf")); document.open(); writer.addAnnotation(PdfAnnotation.createText(writer, new Rectangle(50, 780, 70, 800), "Comment", "This is a Comment", false, "Comment")); writer.addAnnotation(PdfAnnotation.createText(writer, new Rectangle(100, 780, 120, 800), "Help", "This is a Help ", true, "Help")); document.close(); }
}</source>