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();
}
링크는 첫 번째 페이지를 제외한 모든 페이지에 추가됩니다. 그러나 링크를 클릭해도 아무런 효과가 없습니다.
누구든지 내 목표를 달성하기 위해 더 좋은 방법을 고치는 방법을 알고 있습니까?
위의 코드를 작성한 방법입니다. – sinestro
샘플 코드를 확인하고 구현해보십시오. – SUBRA