如何在现有PDF中使用iTextSharp将超链接插入另一个页面?

时间:2012-11-19 06:43:24

标签: c# .net hyperlink itextsharp

我想添加一个链接到现有的pdf,跳转到另一个页面上的坐标。

我可以使用以下代码添加矩形:

PdfContentByte overContent = stamper.GetOverContent(1);
iTextSharp.text.Rectangle rectangle = new Rectangle(10,10,100,100,0);
rectangle.BackgroundColor = BaseColor.BLUE;
overContent.Rectangle(rectangle);
stamper.Close();

如何创建类似于创建可点击的链接?感谢。

2 个答案:

答案 0 :(得分:1)

本书"iText in Action - Second Edition"的第7章对此进行了解释。您可以在此处找到示例:http://itextpdf.com/examples/iia.php?id=150

如果您需要C#版本,请查看此处:http://kuujinbo.info/iTextInAction2Ed/index.aspx

更具体地说:http://kuujinbo.info/iTextInAction2Ed/index.aspx?ch=Chapter07&ex=TimetableAnnotations2

PdfAnnotation annotation = PdfAnnotation.CreateLink(
    stamper.Writer, rect, PdfAnnotation.HIGHLIGHT_INVERT,
    new PdfAction("http://itextpdf.com/")
);
stamper.AddAnnotation(annotation, page);

在此代码示例中,page是您要添加链接的页面编号,rect是定义该页面上坐标的Rectangle对象。

答案 1 :(得分:0)

我喜欢用表格构建PDF,这是我使用的代码

PdfPCell cell = new Chunk anchor = new Chunk("Name of link", font);
anchor.SetAnchor("PageName.aspx");
cell.AddElement(new Phrase(anchor));
cell.BorderColor = BaseColor.BLACK; 
cell.Padding = 5;
table.AddCell(cell);

或者如果您希望它是无边界的

PdfPCell cell = new Chunk anchor = new Chunk("Name of link", font);
anchor.SetAnchor("PageName.aspx");
cell.AddElement(new Phrase(anchor));
cell.Border = Rectangle.NO_BORDER;
table.AddCell(cell);