Example usage for com.lowagie.text.pdf PdfStamper addAnnotation

List of usage examples for com.lowagie.text.pdf PdfStamper addAnnotation

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfStamper addAnnotation.

Prototype

public void addAnnotation(PdfAnnotation annot, int page) 

Source Link

Document

Adds an annotation of form field in a specific page.

Usage

From source file:classroom.newspaper_b.Newspaper08.java

public static void main(String[] args) {
    try {// w w w .  ja  v  a2 s  .  c  o  m
        PdfReader reader = new PdfReader(NEWSPAPER);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));

        PdfAnnotation annotation1 = PdfAnnotation.createText(stamper.getWriter(),
                new Rectangle(LLX1, LLY1, URX1, URY1), "Advertisement 1", MESSAGE, false, "Insert");
        PdfAppearance ap = stamper.getOverContent(1).createAppearance(W1, H1);
        ap.setRGBColorStroke(0xFF, 0x00, 0x00);
        ap.setLineWidth(3);
        ap.moveTo(0, 0);
        ap.lineTo(W1, H1);
        ap.moveTo(W1, 0);
        ap.lineTo(0, H1);
        ap.stroke();
        annotation1.setAppearance(PdfAnnotation.APPEARANCE_NORMAL, ap);
        stamper.addAnnotation(annotation1, 1);

        PdfAnnotation annotation2 = PdfAnnotation.createText(stamper.getWriter(),
                new Rectangle(LLX2, LLY2, URX2, URY2), "Advertisement 2", MESSAGE, true, "Insert");
        annotation2.put(PdfName.C, new PdfArray(new float[] { 0, 0, 1 }));
        stamper.addAnnotation(annotation2, 1);

        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:classroom.newspaper_b.Newspaper09.java

public static void main(String[] args) {
    try {/*w ww.  j  a  va  2  s .com*/
        PdfReader reader = new PdfReader(NEWSPAPER);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));

        PdfAnnotation annotation1 = PdfAnnotation.createSquareCircle(stamper.getWriter(),
                new Rectangle(LLX1, LLY1, URX1, URY1), MESSAGE, true);
        annotation1.put(PdfName.T, new PdfString("Advertisement 1"));
        annotation1.put(PdfName.C, new PdfArray(new float[] { 1, 0, 0 }));
        stamper.addAnnotation(annotation1, 1);

        PdfAnnotation annotation2 = PdfAnnotation.createText(stamper.getWriter(),
                new Rectangle(LLX2, LLY2, URX2, URY2), "Advertisement 2", MESSAGE, false, null);
        annotation2.put(PdfName.NM, new PdfString("ad2"));
        // the text must be read only, and the annotation set to NOVIEW
        annotation2.put(PdfName.F, new PdfNumber(PdfAnnotation.FLAGS_READONLY | PdfAnnotation.FLAGS_NOVIEW));

        // we create a popup annotation that will define where the rectangle will appear
        PdfAnnotation popup = PdfAnnotation.createPopup(stamper.getWriter(),
                new Rectangle(LLX2 + 50, LLY2 + 120, URX2 - 80, URY2 - 120), null, false);

        // we add a reference to the text annotation to the popup annotation
        popup.put(PdfName.PARENT, annotation2.getIndirectReference());
        // we add a reference to the popup annotation to the text annotation
        annotation2.put(PdfName.POPUP, popup.getIndirectReference());

        // we add both annotations to the writer
        stamper.addAnnotation(annotation2, 1);
        stamper.addAnnotation(popup, 1);

        // the text annotation can't be viewed (it's invisible)
        // we create a widget annotation named mywidget (it's a button field)
        PushbuttonField field = new PushbuttonField(stamper.getWriter(), new Rectangle(LLX2, LLY2, URX2, URY2),
                "button");
        PdfAnnotation widget = field.getField();
        PdfDictionary dict = new PdfDictionary();
        // we write some javascript that makes the popup of the text annotation visible/invisible on mouse enter/exit
        String js1 = "var t = this.getAnnot(this.pageNum, 'ad2'); t.popupOpen = true; var w = this.getField('button'); w.setFocus();";
        PdfAction enter = PdfAction.javaScript(js1, stamper.getWriter());
        dict.put(PdfName.E, enter);
        String js2 = "var t = this.getAnnot(this.pageNum, 'ad2'); t.popupOpen = false;";
        PdfAction exit = PdfAction.javaScript(js2, stamper.getWriter());
        dict.put(PdfName.X, exit);
        // we add the javascript as additional action
        widget.put(PdfName.AA, dict);
        // we add the button field
        stamper.addAnnotation(widget, 1);

        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:classroom.newspaper_b.Newspaper10.java

public static void main(String[] args) {
    try {//  www  .jav a2 s.  c o  m
        PdfReader reader = new PdfReader(NEWSPAPER);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
        PushbuttonField button;
        Rectangle rect;

        rect = new Rectangle(100, 980, 700, 1000);
        button = new PushbuttonField(stamper.getWriter(), rect, "click");
        button.setBackgroundColor(Color.ORANGE);
        button.setText("Click here to close window");
        button.setLayout(PushbuttonField.LAYOUT_LABEL_ONLY);
        button.setAlignment(Element.ALIGN_RIGHT);
        PdfFormField menubar = button.getField();
        String js = "var f1 = getField('click'); f1.display = display.hidden;"
                + "var f2 = getField('advertisement'); f2.display = display.hidden;";
        menubar.setAction(PdfAction.javaScript(js, stamper.getWriter()));
        stamper.addAnnotation(menubar, 1);

        rect = new Rectangle(100, 500, 700, 980);
        button = new PushbuttonField(stamper.getWriter(), rect, "advertisement");
        button.setBackgroundColor(Color.WHITE);
        button.setBorderColor(Color.ORANGE);
        button.setImage(Image.getInstance(IMG));
        button.setText("Buy the book iText in Action");
        button.setLayout(PushbuttonField.LAYOUT_LABEL_TOP_ICON_BOTTOM);
        PdfFormField advertisement = button.getField();
        advertisement.setAction(new PdfAction("http://www.1t3xt.com/docs/book.php"));
        stamper.addAnnotation(advertisement, 1);
        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:classroom.newspaper_b.Newspaper11.java

public static void addTextField(PdfStamper stamper, Rectangle rect, String name, int pagenumber)
        throws IOException, DocumentException {
    TextField field = new TextField(stamper.getWriter(), rect, name);
    field.setAlignment(Element.ALIGN_CENTER);
    field.setOptions(TextField.MULTILINE);
    field.setText(MESSAGE);/*from  w w w.  j a va2s. c om*/
    stamper.addAnnotation(field.getTextField(), pagenumber);
}

From source file:classroom.newspaper_b.Newspaper13.java

public static void addButton(PdfStamper stamper, Rectangle rect, String path, String name, int pagenumber)
        throws IOException, DocumentException {
    PushbuttonField field = new PushbuttonField(stamper.getWriter(), rect, name);
    if (path.endsWith(".pdf")) {
        PdfReader reader = new PdfReader(path);
        field.setTemplate(stamper.getImportedPage(reader, 1));
    } else {//from w  w  w .  j a va 2s .c  o m
        field.setImage(Image.getInstance(path));
    }
    field.setBackgroundColor(new Color(0xFF, 0xFF, 0xFF));
    field.setBorderColor(new Color(0xC0, 0xC0, 0xC0));
    field.setBorderWidth(0.5f);
    field.setScaleIcon(PushbuttonField.SCALE_ICON_ALWAYS);
    field.setLayout(PushbuttonField.LAYOUT_ICON_ONLY);
    stamper.addAnnotation(field.getField(), pagenumber);
}

From source file:questions.forms.AddFieldToExistingForm.java

public static void main(String[] args) {
    PdfReader reader;/*from w w  w .  j  av  a  2  s .  c  o m*/
    try {
        reader = new PdfReader(FORM);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(RESULT));
        TextField tf = new TextField(stamper.getWriter(), new Rectangle(100, 760, 400, 785), "added_field");
        tf.setText("\u00e4\u00f4\u00df");
        tf.setOptions(TextField.READ_ONLY);
        stamper.addAnnotation(tf.getTextField(), 1);
        AcroFields form = stamper.getAcroFields();
        form.setField("Who", "\u00e4\u00f3\u00df\u00f4");
        stamper.close();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (DocumentException e) {
        e.printStackTrace();
    }
}

From source file:questions.javascript.AddJavaScriptToForm.java

public static void addJavaScript(String input, String output) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(input);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(output));
    stamper.getWriter()//ww  w .  jav a  2s  .c  o m
            .addJavaScript("function setReadOnly(readonly) {" + "var partner = this.getField('partner');"
                    + "if(readonly) {" + "partner.value = '';" + "}" + "partner.readonly = readonly;" + " }"
                    + "function validate() {" + "var married = this.getField('married');"
                    + "var partner = this.getField('partner');"
                    + "if (married.value == 'yes' && partner.value == '') {"
                    + "app.alert('please enter the name of your partner');" + "}" + "else {"
                    + "this.submitForm({" + " cURL:\"http://1t3xt.info/examples/request.php\","
                    + " cSubmitAs: \"HTML\"" + "});" + "}" + " }");
    AcroFields form = stamper.getAcroFields();
    Item fd = form.getFieldItem("married");

    PdfDictionary dictYes = (PdfDictionary) PdfReader.getPdfObject((PdfObject) fd.getWidgetRef(0));
    PdfDictionary yesAction = dictYes.getAsDict(PdfName.AA);
    if (yesAction == null)
        yesAction = new PdfDictionary();
    yesAction.put(new PdfName("Fo"), PdfAction.javaScript("setReadOnly(false);", stamper.getWriter()));
    dictYes.put(PdfName.AA, yesAction);

    PdfDictionary dictNo = (PdfDictionary) PdfReader.getPdfObject((PdfObject) fd.getWidgetRef(1));
    PdfDictionary noAction = dictNo.getAsDict(PdfName.AA);
    if (noAction == null)
        noAction = new PdfDictionary();
    noAction.put(new PdfName("Fo"), PdfAction.javaScript("setReadOnly(true);", stamper.getWriter()));
    dictNo.put(PdfName.AA, noAction);

    PdfWriter writer = stamper.getWriter();
    PushbuttonField button = new PushbuttonField(writer, new Rectangle(40, 690, 200, 710), "submit");
    button.setText("validate and submit");
    button.setOptions(PushbuttonField.VISIBLE_BUT_DOES_NOT_PRINT);
    PdfFormField validateAndSubmit = button.getField();
    validateAndSubmit.setAction(PdfAction.javaScript("validate();", stamper.getWriter()));
    stamper.addAnnotation(validateAndSubmit, 1);

    stamper.close();
}