import java.awt.Color;
import java.awt.Rectangle;
import java.io.IOException;
import com.gnostice.pdfone.PDFOne;
import com.gnostice.pdfone.PdfAnnot;
import com.gnostice.pdfone.PdfDocument;
import com.gnostice.pdfone.PdfException;
import com.gnostice.pdfone.PdfMeasurement;
import com.gnostice.pdfone.PdfPage;
import com.gnostice.pdfone.PdfRect;
import com.gnostice.pdfone.PdfTextAnnot;
import com.gnostice.pdfone.PdfWriter;
public class PdfTextAnnot_Examples
{
// Activates the component PDFOne.jar
static
{
PDFOne.activate("T95VZE:W8HBPVA:74VQ8QV:LO4V8",
"9B1HRZAP:X5853ERNE:5EREMEGRQ:TX1R10");
}
public static void main(String[] args) throws IOException,
PdfException
{
PdfTextAnnot_Examples obj = new PdfTextAnnot_Examples();
// To try other examples, add the obj.<example_method>
// accordingly. For example, try:
// obj.setRect_Example();
obj.PdfTextAnnot_CONSTRUCTORS_Example();
}
// This code segment creates several text annotations using
// overloaded constructors
public void PdfTextAnnot_CONSTRUCTORS_Example()
throws IOException, PdfException
{
PdfWriter writer = PdfWriter.fileWriter(
"PdfTextAnnot_CONSTRUCTORS_Example.pdf");
PdfDocument document = new PdfDocument(writer);
PdfPage page = new PdfPage();
// Constructs a text annotation with pink-colored popup
// window. Specifies that the top-left corner of the
// annotation rectangle is positioned at (200, 100).
PdfTextAnnot tAnnot1 = new PdfTextAnnot(200, 75, Color.PINK);
// Constructs a text annotation that can be printed but is
// read-only
PdfTextAnnot tAnnot2 = new PdfTextAnnot(
200, 150,
PdfTextAnnot.FLAG_PRINT | PdfTextAnnot.FLAG_READONLY);
// Constructs a text annotation with a pink-colored popup
// window. Specifies that the annotation can be printed but
// is read-only.
PdfTextAnnot tAnnot3 = new PdfTextAnnot(
200, 225,
PdfTextAnnot.FLAG_PRINT | PdfTextAnnot.FLAG_READONLY,
Color.PINK);
// Constructs a text annotation with comment-icon appearance
// that is automatically displayed when the document is
// displayed
PdfTextAnnot tAnnot4 = new PdfTextAnnot(
200, 300,
PdfTextAnnot.ICON_COMMENT,
true);
// Specifies title, subject and contents settings for the
// above annotations
tAnnot1.setTitle("PdfTextAnnot");
tAnnot2.setTitle("PdfTextAnnot");
tAnnot3.setTitle("PdfTextAnnot");
tAnnot4.setTitle("PdfTextAnnot");
tAnnot1.setSubject("Constructor");
tAnnot2.setSubject("Constructor");
tAnnot3.setSubject("Constructor");
tAnnot4.setSubject("Constructor");
tAnnot1.setContents(
"PdfTextAnnot(double x, double y, Color c)");
tAnnot2.setContents(
"PdfTextAnnot(double x, double y, int flags)");
tAnnot3.setContents(
"PdfTextAnnot(double x, double y, int flags, Color c)");
tAnnot4.setContents(
"PdfTextAnnot(double x, double y, int iconName, "
+ "boolean open)");
// Creates strings to be used as contents for the annotations
// created below
String str5 =
"PdfTextAnnot(double x, double y, String subject, "
+ "String contents, String title)";
String str6 =
"PdfTextAnnot(double x, double y, String subject, "
+ "String contents, String title, Color c)";
String str7 =
"PdfTextAnnot(double x, double y, String subject, "
+ "String contents, String title, int flags)";
String str8 =
"PdfTextAnnot(double x, double y, String subject, "
+ "String contents, String title, int flags, Color c)";
String str9 =
"PdfTextAnnot(double x, double y, String subject, "
+ "String contents, String title, int flags, Color c,"
+ "int iconName, boolean open)";
// Constructs a text annotation with specified subject,
// contents, and title
PdfTextAnnot tAnnot5 = new PdfTextAnnot(250, 375,
"Constructor",
str5,
"PdfTextAnnot");
// Constructs a text annotation with pink-colored popup
// window. Also specifies subject, contents, and title.
PdfTextAnnot tAnnot6 = new PdfTextAnnot(250, 450,
"Constructor",
str6,
"PdfTextAnnot",
Color.PINK);
// Constructs a text annotation with specified subject,
// contents, title, and flags. Also specifies that the
// annotation is read-only.
PdfTextAnnot tAnnot7 = new PdfTextAnnot(
250, 525,
"Constructor",
str7,
"PdfTextAnnot",
PdfTextAnnot.FLAG_READONLY);
// Constructs a text annotation with specified subject,
// contents, title, flags, and color of popup window
PdfTextAnnot tAnnot8 = new PdfTextAnnot(
250, 600,
"Constructor",
str8,
"PdfTextAnnot",
PdfTextAnnot.FLAG_READONLY,
Color.PINK);
// Constructs a text annotation with specified subject,
// constructor, title, flags, color of popup window, icon
// appearance, and display setting
PdfTextAnnot tAnnot9 = new PdfTextAnnot(
250, 675,
"Constructor",
str9,
"PdfTextAnnot",
PdfTextAnnot.FLAG_READONLY,
Color.PINK,
PdfTextAnnot.ICON_PARAGRAPH,
true);
// Sets the annotation windows to be displayed by default
tAnnot1.setOpen(true);
tAnnot2.setOpen(true);
tAnnot3.setOpen(true);
tAnnot5.setOpen(true);
tAnnot6.setOpen(true);
tAnnot7.setOpen(true);
tAnnot8.setOpen(true);
page.addAnnotation(tAnnot1);
page.addAnnotation(tAnnot2);
page.addAnnotation(tAnnot3);
page.addAnnotation(tAnnot4);
page.addAnnotation(tAnnot5);
page.addAnnotation(tAnnot6);
page.addAnnotation(tAnnot7);
page.addAnnotation(tAnnot8);
page.addAnnotation(tAnnot9);
document.add(page);
// Sets the file to be opened after it is written to
document.setOpenAfterSave(true);
// Writes the document object to file
document.write();
// Closes all I/O streams associated with this writer object
writer.dispose();
}
// This code segment creates a text annotation, set its
// properties, and adds it to a page
public void SETTERS_Example() throws IOException,
PdfException
{
PdfWriter writer = PdfWriter.fileWriter(
"PdfTextAnnot_SETTERS_Example.pdf");
PdfDocument document = new PdfDocument(writer);
// Creates a text annotation object
PdfTextAnnot tAnnot1 = new PdfTextAnnot();
// Specifies a unique name in the document for the annotation
tAnnot1.setAnnotName("First_Text_Annotation");
// Specifies color of the annotation popup
tAnnot1.setColor(Color.PINK);
// Specifies icon appearance
tAnnot1.setIconName(PdfTextAnnot.ICON_KEY);
// Specifies text to be used in title bar
tAnnot1.setTitle("Attn: All");
// Specifies text to be used as subject of the annotation
tAnnot1.setSubject("EOD Deliverables");
// Specifies contents of the annotation
tAnnot1.setContents(
"Please check this document. It has some errors.");
// Specifies coordinates of top-left corner of the annotation
// rectangle at position (200, 100)
tAnnot1.setLocation(200, 100);
// Specifies that the annotation is to be included when the
// documented is printed
tAnnot1.setFlags(PdfAnnot.FLAG_PRINT);
// Specifies the annotation to be displayed by default
tAnnot1.setOpen(true);
// Creates a page
PdfPage page = new PdfPage();
// Adds the annotation to the above page
page.addAnnotation(tAnnot1);
document.add(page);
// Sets the file to be opened after it is written to
document.setOpenAfterSave(true);
// Writes the document object to file
document.write();
// Closes all I/O streams associated with this writer object
writer.dispose();
}
// This code segment creates a text annotation and then clones it
// several times. The location of the cloned annotation is changed
// using overloaded setRect methods.
public void setRect_Example() throws IOException, PdfException
{
PdfWriter writer = PdfWriter.fileWriter(
"PdfTextAnnot_setRect_Example.pdf");
PdfDocument document = new PdfDocument(writer);
// Creates a page and writes some text
PdfPage page = new PdfPage();
page.writeText("One, to, buckle my shoe.", 200, 100);
page.writeText("Three, for, shut the door.", 200, 150);
page.writeText("Five, socks, pick up sticks.", 200, 200);
page.writeText("Seven, height, lay them straight. ", 200, 250);
page.writeText("Nine, ton, a big fat hen. ", 200, 300);
page.writeText("Eleven, toll, men must delve. ", 200, 350);
// Creates a text annotation object and specifies its
// properties
PdfTextAnnot tAnnot1 = new PdfTextAnnot();
tAnnot1.setAnnotName("Annotation1");
tAnnot1.setColor(Color.PINK);
tAnnot1.setIconName(PdfTextAnnot.ICON_COMMENT);
tAnnot1.setTitle("Mistakes in this document");
tAnnot1.setSubject("Mistake #1");
tAnnot1.setContents("\"Two\" is spelled as \"to\"");
tAnnot1.setFlags(PdfAnnot.FLAG_PRINT);
tAnnot1.setOpen(false);
tAnnot1.setLocation(200, 80);
// Creates cloned annotations with the above annotation
PdfTextAnnot tAnnot2 = (PdfTextAnnot) tAnnot1.clone();
PdfTextAnnot tAnnot3 = (PdfTextAnnot) tAnnot1.clone();
PdfTextAnnot tAnnot4 = (PdfTextAnnot) tAnnot1.clone();
PdfTextAnnot tAnnot5 = (PdfTextAnnot) tAnnot1.clone();
PdfTextAnnot tAnnot6 = (PdfTextAnnot) tAnnot1.clone();
// Specifies annotation rectangle with its top corner at
// position (200, 130) and its width and height set at 50
tAnnot2.setRect(200, 130, 50, 50);
tAnnot2.setAnnotName("Annotation2");
tAnnot2.setSubject("Mistake #2");
tAnnot3.setContents("\"Six\" is spelled as \"socks\"");
// Specifies annotation rectangle in explicitly specified
// measurement units
tAnnot3.setRect(200, 180, 50, 150, PdfMeasurement.MU_POINTS);
tAnnot3.setAnnotName("Annotation3");
tAnnot3.setSubject("Mistake #3");
tAnnot4.setContents("\"Eight\" is spelled as \"height\"");
// Specifies annotation rectangle with a PdfRect object
PdfRect pRectangle1 = new PdfRect(200, 230, 50, 50);
tAnnot4.setRect(pRectangle1);
tAnnot4.setAnnotName("Annotation4");
tAnnot4.setSubject("Mistake #4");
tAnnot4.setContents("\"Eight\" is spelled as \"height\"");
// Specifies annotation rectangle with a PdfRect object.
// Explicitly specifies that the PdfRect object is to applied
// in points.
PdfRect pRectangle2 = new PdfRect(200, 280, 50, 50);
tAnnot5.setRect(pRectangle2, PdfMeasurement.MU_POINTS);
tAnnot5.setAnnotName("Annotation5");
tAnnot5.setSubject("Mistake #5");
tAnnot5.setContents("\"Ten\" is spelled as \"ton\"");
// Specifies annotation rectangle with a Rectangle object
Rectangle jRectangle = new Rectangle(200, 330, 50, 50);
tAnnot6.setRect(jRectangle);
tAnnot6.setAnnotName("Annotation6");
tAnnot6.setSubject("Mistake #6");
tAnnot6.setContents("\"Twelve\" is spelled as \"toll\"");
page.addAnnotation(tAnnot1);
page.addAnnotation(tAnnot2);
page.addAnnotation(tAnnot3);
page.addAnnotation(tAnnot4);
page.addAnnotation(tAnnot5);
page.addAnnotation(tAnnot6);
document.add(page);
// Sets the file to be opened after it is written to
document.setOpenAfterSave(true);
// Writes the document object to file
document.write();
// Closes all I/O streams associated with this writer object
writer.dispose();
}
}