ByteScout PDF SDK – C# – Navigation – Link To Page

  • Home
  • /
  • Articles
  • /
  • ByteScout PDF SDK – C# – Navigation – Link To Page

ByteScout PDF SDK – C# – Navigation – Link To Page

Program.cs

using System.Diagnostics;
using System.Drawing;
using Bytescout.PDF;
using Brush = Bytescout.PDF.Brush;
using Font = Bytescout.PDF.Font;
using SolidBrush = Bytescout.PDF.SolidBrush;
using StringFormat = Bytescout.PDF.StringFormat;

namespace LinkToPage
{
    /// <summary>
    /// This example demonstrates how to create a navigation link to a page.
    /// </summary>
    class Program
    {
        static void Main()
        {
            // Create new document
            Document pdfDocument = new Document();
            pdfDocument.RegistrationName = "demo";
            pdfDocument.RegistrationKey = "demo";
            // Add two pages
            Page page1 = new Page(PaperFormat.A4);
            pdfDocument.Pages.Add(page1);
            Page page2 = new Page(PaperFormat.A4);
            pdfDocument.Pages.Add(page2);

            Font font = new Font(StandardFonts.Times, 12);
            Brush brush = new SolidBrush();
            
            // Create link annotation pointing to Page 2, 200 Points from the top.
            Destination destination = new Destination(page2, 200);
            LinkAnnotation link = new LinkAnnotation(destination, 20, 20, 100, 25);
            link.Color = new ColorRGB(255, 0, 0); // you can change the link color
            page1.Annotations.Add(link);

            // Draw link text (optional)
            page1.Canvas.DrawString("Link to Page 2", font, brush, new RectangleF(20, 20, 100, 25), 
                new StringFormat {HorizontalAlign = HorizontalAlign.Center, VerticalAlign = VerticalAlign.Center});
            
            // Draw a text at the link target
            page2.Canvas.DrawString("Link target", font, brush, 20, 200);
            
            // Save document to file
            pdfDocument.Save("result.pdf");

            // Cleanup 
            pdfDocument.Dispose();

            // Open result document in default associated application (for demo purpose)
            ProcessStartInfo processStartInfo = new ProcessStartInfo("result.pdf");
            processStartInfo.UseShellExecute = true;
            Process.Start(processStartInfo);
        }
    }
}


  Click here to get your Free Trial version of the SDK

prev
next