Changing the author of an annotation

This is a code example of iText PDF, discover more.

25th October 2015
admin-marketing

iText 5 is no longer being developed, except for security fixes. Click the following link to see an updated example for iText 7.

Example written in answer to the question How to change the author name for comments?

ChangeAuthor.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
 * This example was written by Bruno Lowagie in answer to the following question:
 * https://www.linkedin.com/groups/Script-Change-Author-Name-Comments-159987.S.5984062085800144899
 */
package sandbox.interactive;
 
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfArray;
import com.itextpdf.text.pdf.PdfDictionary;
import com.itextpdf.text.pdf.PdfName;
import com.itextpdf.text.pdf.PdfReader;
import com.itextpdf.text.pdf.PdfStamper;
import com.itextpdf.text.pdf.PdfString;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import sandbox.WrapToTest;
 
@WrapToTest
public class ChangeAuthor {
    public static final String SRC = "resources/pdfs/page229_annotations.pdf";
    public static final String DEST = "results/interactive/page229_changed_author.pdf";
    
    public static void main(String[] args) throws IOException, DocumentException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new ChangeAuthor().manipulatePdf(SRC, DEST);
    }
    
    
    public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
        PdfReader reader = new PdfReader(src);
        PdfDictionary pageDict = reader.getPageN(1);
        PdfArray annots = pageDict.getAsArray(PdfName.ANNOTS);
        if (annots != null) {
            PdfDictionary annot;
            for (int i = 0; i < annots.size(); i++) {
                changeAuthor(annots.getAsDict(i));
            }
        }
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
        stamper.close();
    }
    
    public void changeAuthor(PdfDictionary annot) {
        if (annot == null) return;
        PdfString t = annot.getAsString(PdfName.T);
        if (t == null) return;
        if ("iText".equals(t.toString()))
            annot.put(PdfName.T, new PdfString("Bruno Lowagie"));
    }
}


Contact

Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now