1

クリックしたときにユーザーをページの上部に戻すには、既存の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();
    }

リンクは最初のページを除くすべてのページに追加されます。ただし、リンクをクリックしても何も起こりません。

誰かがこれを修正する方法、または私の目標を達成するためのより良い方法を知っていますか?

4

1 に答える 1

1

こんにちは、あなたはここに続く正確な方法を使うことができます。

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

于 2012-12-19T10:20:44.320 に答える