Anchor和Chunk在iText 2.1.7中不起作用

时间:2014-06-04 15:40:24

标签: hyperlink anchor itext

所有

早上好。

我试图使用iText从PDF文档的一部分创建链接到其他部分。 我使用的iText版本是2.1.7

我尝试使用Anchors和Chunks,但都没有工作。基本上,链接根本不会变为可点击。

以下是具有Anchor和Chunk的目标代码:

Anchor anchor = new Anchor("Reach here");
anchor.setName("DestinationID");
pdfDocument.add(anchor);

Chunk chunk = new Chunk("Reach here");
chunk.setLocalDestination("DestinationID");
pdfDocument.add(chunk);

以下是Anchor和Chunk的链接代码:

Anchor anchor = new Anchor("Click Here", PDFConstants.HELVETICA_8_BOLD_UNDERLINE);
anchor.setReference("#DestinationID");
cell.add(anchor);

Chunk chunk = new Chunk("Click Here", PDFConstants.HELVETICA_8_BOLD_UNDERLINE);
chunk.setLocalGoto("DestinationID");
cell.add(chunk);

//单元格稍后会添加到表格

感谢有人能指出我做错了什么。

谢谢你, 拉加

1 个答案:

答案 0 :(得分:1)

您必须考虑Bruno Lowagie的评论并升级您的版本,因为iText 2.1.7是旧版本,不会抱怨新的PDFReference规范。 不管怎么说,我的代码片段中没有出现任何问题,可能是你的代码中没有出现问题。我用Chunk做了一个简单的测试2.1.7版本,如果你想检查是否有什么可以帮到你的话,我给你我的样本:

import java.awt.Color;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import com.lowagie.text.Cell;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.PdfWriter;

public class PDFChunkTest {

    public static void main(String[] args) throws FileNotFoundException, IOException, DocumentException {


        Document doc = new Document();
        PdfWriter writer = PdfWriter.getInstance(doc,new FileOutputStream("C:/temp/pdf.pdf"));

        doc.open();

        Chunk chunk = new Chunk("click here", FontFactory.getFont(FontFactory.HELVETICA, 8, Font.BOLD, new Color(0, 0, 255)));
        chunk.setLocalGoto("test");

        Table tab = new Table(1, 2);
        Cell cell = new Cell();
        cell.add(chunk);
        tab.addCell(cell);
        doc.add(tab);

        Paragraph p2 = new Paragraph("Lorem ipsum dolor sit amet...");
        doc.add(p2);
        doc.add(p2);
        doc.add(p2);
        doc.add(p2);
        doc.add(p2);
        doc.add(p2);

        Chunk chunk2 = new Chunk("local destination", FontFactory.getFont(FontFactory.HELVETICA, 8, Font.BOLD, new Color(0, 0, 0)));
        chunk2.setLocalDestination("test");
        doc.add(chunk2);

        doc.close();

    }

}