【问题标题】:How to add "back to top" anchor to PDF using itextSharp?如何使用 itextSharp 将“返回顶部”锚点添加到 PDF?
【发布时间】:2012-12-18 19:26:12
【问题描述】:

我需要在现有的 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();
    }

链接被添加到除第一个页面之外的所有页面。但是,当我单击链接时,它什么也不做。

有谁知道如何解决这个问题或更好的方法来实现我的目标?

【问题讨论】:

    标签: c#-4.0 itextsharp


    【解决方案1】:

    您好,您可以使用此处的确切方法。

    http://www.mikesdotnetting.com/Article/84/iTextSharp-Links-and-Bookmarks

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      • 1970-01-01
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多