2012-12-18 2 views
1

클릭하면 사용자를 페이지 상단으로 되돌리려면 기존 PDF에 앵커를 추가해야합니다. 나는 이것을 시도했다 :itextSharp를 사용하여 "back to top"앵커를 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(); 
    } 

링크는 첫 번째 페이지를 제외한 모든 페이지에 추가됩니다. 그러나 링크를 클릭해도 아무런 효과가 없습니다.

누구든지 내 목표를 달성하기 위해 더 좋은 방법을 고치는 방법을 알고 있습니까?

답변

관련 문제