2012-12-18 42 views
1

我需要爲現有的pdf添加一個錨點,以便點擊時將用戶返回到頁面的頂部。我試過這個:如何使用itextSharp將「返回頂部」錨點添加到PDF中?

 public void Bookmark() { 
     PdfReader reader = new PdfReader(new RandomAccessFileOrArray(_fileName), null); 
     DeleteFile(); //delete old pdf (_filename) 

     _fileName = Setting.Temp + Guid.NewGuid() + ".pdf"; 

     Document doc = new Document(PageSize.A4, 0, 0, 50, 50); 
     PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(_fileName, FileMode.Create)); 

     iTextSharp.text.Font link = FontFactory.GetFont("Arial", 12, BaseColor.BLUE); 

     doc.Open(); 

     PdfContentByte pdfContentByte = writer.DirectContent; 
     Anchor topAnchor = null; 
     PdfImportedPage page = null; 
     for (int i = 1; i < reader.NumberOfPages; i++) { 
      if (i == 1) { 
       topAnchor = new Anchor(""); 
       topAnchor.Name = "TopAnchor"; 
       page = writer.GetImportedPage(reader, i); 
       doc.NewPage(); 
       pdfContentByte.AddTemplate(page, 0, 0); 
       doc.Add(topAnchor); 
      } else { 
       page = writer.GetImportedPage(reader, i); 
       doc.NewPage(); 
       pdfContentByte.AddTemplate(page, 0, 0); 

       Anchor anchor = new Anchor("Back to Top", link); 
       anchor.Reference = "#TopAnchor"; 
       doc.Add(anchor); 
      } 

     } 


     doc.Close(); 
    } 

鏈接被添加到除第一個頁面以外的所有頁面。但是,當我點擊鏈接時,它什麼都不做。

有誰知道如何解決這個或更好的方式來實現我的目標?

回答

相關問題