iText 生成pdf内部链接

http://www.geek-tutorials.com/java/itext/itext_bookmark_anchor.php

package com.geek.tutorial.itext.bookmarks;
import com.lowagie.text.Document;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.Chunk;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfOutline;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfAction;
import java.io.FileOutputStream;
import java.awt.Color;
public class Anchor {
    
public Anchor()throws Exception{
        
        Document document 
= new Document();
        PdfWriter writer 
= 
            PdfWriter.getInstance(document, 
                
new FileOutputStream("anchor.pdf"));
        document.open();
        
        
// Code 1
        Font font = new Font();
        font.setColor(Color.BLUE);
        font.setStyle(Font.UNDERLINE);        
        
        document.add(
new Chunk("Chapter 1"));            
        
        document.add(
        
new Paragraph(
        
new Chunk("Press here to go chapter 2", font)
        .setLocalGoto(
"2")));// Code 2
        
        document.newPage();        
                
        document.add(
new Chunk("Chapter 2")
            .setLocalDestination(
"2"));
        document.add(
        
new Paragraph(
        
new Chunk("http://www.geek-tutorials.com", font)
        .setAnchor(
"http://www.geek-tutorials.com")));//Code 3
        
        document.add(
        
new Paragraph(
        
new Chunk("Open outline.pdf chapter 3", font)
        .setRemoteGoto(
"outline.pdf""3")));//Code 4
        
        document.close();
        
    }
    
    
public static void main(String[] args) {
        
        
try{
            Anchor anchor 
= new Anchor();
        }
catch(Exception e){
            System.out.println(e);
        }
    }
}
        

Code 1
Define a Font instance with BLUE and UNDERLINE styles. Just to make the links in this example look like html hyperlink .

Code 2
You can set a chunk of text to act as a link to direct reader to particular content on the same PDF as they click on the link.

First you set a link to a chunk. Code below instruct the chunk of text to be link to a destination labeled as "2".

document.add(
	new Paragraph(
	new Chunk("Press here to go chapter 2", font)
	.setLocalGoto("2")));
		

Then set a destination.

document.add(new Chunk("Chapter 2").setLocalDestination("2"));
		

When reader click on the "Press here to go chapter 2", PDF reader will jump to the location where destination "2" is set.

Code 3
This code create a external link that display web content in default internet browser.

document.add(
new Paragraph(
new Chunk("http://www.geek-tutorials.com", font)
.setAnchor("http://www.geek-tutorials.com")));//Code 3		

Code 4
This code create a remote link to external PDF file that located in the local drive. It will open outline.pdf file and jump to destination "3".

document.add(
new Paragraph(
new Chunk("Open outline.pdf chapter 3", font)
.setRemoteGoto("outline.pdf", "3")));//Code 4		

 

posted @ 2010-12-29 20:56  qiang.xu  阅读(1061)  评论(0编辑  收藏  举报