The com.itextpdf.text.Anchor
class in iText can be used to create an internal link or external link in a PDF document. To create an internal link we must format the anchor reference using the #
+ referenceName
. On the other side the target anchor should be named using the same reference name excluding the #
symbol.
To set the reference we use the setReference()
method. To define the target anchor we can name the anchor using the setName()
method.
package org.kodejava.itextpdf;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
public class AnchorInternalDemo {
public static void main(String[] args) {
Document document = new Document();
try {
PdfWriter.getInstance(document, new FileOutputStream("AnchorInternal.pdf"));
document.open();
Anchor anchor = new Anchor("[Continue Here]");
anchor.setReference("#targetLink");
Paragraph para1 = new Paragraph("The quick brown fox jumps over the lazy dog. ");
para1.add(anchor);
document.add(para1);
Anchor target = new Anchor("The quick onyx goblin jumps over the lazy dwarf.");
anchor.setName("targetLink");
Paragraph para2 = new Paragraph();
para2.setSpacingBefore(150);
para2.add(target);
document.add(para2);
document.close();
} catch (DocumentException | FileNotFoundException e) {
e.printStackTrace();
} finally {
document.close();
}
}
}
Maven Dependencies
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.13.3</version>
</dependency>
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024
We are in 2024, developers could use iText 8 or 7!