←Select platform

GetLinks Method

Summary

Links of this page.

Syntax
C#
C++/CLI
Java
Python
public DocumentLink[] GetLinks() 
public:  
   array<DocumentLink^>^ GetLinks() 
public DocumentLink[] getLinks() 
def GetLinks(self): 

Return Value

An array containing the links for this page if available, or null.

Remarks

GetLinks is used to get the links found in this page. All document types support this method however, the page links (links that refer to another part of the document) are not read from the original document till DocumentStructure.IsParsed has been called and the value of DocumentStructure.ParsePageLinks is true.

SetLinks is used to replace the links of the page. IsLinksModified is used to as flag that indicates that the links of this page has been replaced by the user.

If this document uses the cache system (LEADDocument.HasCache is true), then the links are stored in the cache only when LEADDocument.SaveToCache is called.

When the value of DocumentText.AutoParseLinks is true and the page text is first obtained using GetText, then the document will attempt to also parse the text for links based on the regular expressions stored in LinkPatterns.

The LEADTOOLS Document Viewer uses this method to obtain the links of a page uses an interactive modes to modify the mouse cursor when the user to hover over a link as well as invoking the link target when the user clicks on a link.

Refer to Loading Using LEADTOOLS Document Library for more information.

Example
C#
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Document.Writer; 
 
using Leadtools.Document; 
using Leadtools.Caching; 
using Leadtools.Annotations.Engine; 
using Leadtools.Ocr; 
using Leadtools.Barcode; 
using Leadtools.Document.Converter; 
 
public void DocumentPageGetLinksExample() 
{ 
   var cache = GetCache(); 
   var options = new LoadDocumentOptions(); 
   options.Cache = cache; 
   using (var document = DocumentFactory.LoadFromFile(Path.Combine(LEAD_VARS.ImagesDir, "Leadtools.pdf"), options)) 
   { 
      document.IsReadOnly = false; 
      // Show the links before parsing the URL in the text 
      Console.WriteLine("Before get text"); 
      Console.WriteLine("---------"); 
      var page = document.Pages[0]; 
      page.SetLinks(page.GetLinks()); 
      ShowLinks(page); 
 
      // Get all of the DocumentPageFitTypes 
      DocumentPageFitType[] pageFitType = (DocumentPageFitType[])Enum.GetValues(typeof(DocumentPageFitType)); 
      foreach (var type in pageFitType) 
      { 
         Console.WriteLine($"Page fit type: {type}"); 
      } 
 
      // Make sure we will parse the hyper links 
      // DocumentText reference 
      document.Text.AutoParseLinks = true; 
      document.Text.TextExtractionMode = DocumentTextExtractionMode.Auto; 
 
      // Show the regular expressions 
      Console.WriteLine("Parsing links from the text using these regular expressions:"); 
      foreach (var regex in DocumentText.LinkPatterns) 
      { 
         Console.WriteLine(regex.ToString()); 
      } 
 
      // Now, get the text to parse the links from it 
      page.GetText(); 
 
      page.IsLinksModified = false; 
 
      // Show the links before parsing the URL in the text. It should now show the original plus any parsed URLs from the text 
      Console.WriteLine("After get text"); 
      Console.WriteLine("---------"); 
      ShowLinks(page); 
   } 
} 
 
private static void ShowLinks(Leadtools.Document.DocumentPage page) 
{ 
   // DocumentLink reference 
   var links = page.GetLinks(); 
   if (links != null) 
   { 
      int index = 0; 
      Console.WriteLine("Page " + page.PageNumber); 
      foreach (var link in links) 
      { 
         Console.WriteLine(index++); 
         Console.WriteLine("  Bounds:" + link.Bounds); 
         Console.WriteLine("  LinkType:" + link.LinkType); 
         if (link.LinkType == DocumentLinkType.Value) 
         { 
            Console.WriteLine("  Value:" + link.Value); 
         } 
         else 
         { 
            // DocumentLinkTarget reference 
            Console.WriteLine("  Target.PageFitType:" + link.Target.PageFitType); 
            Console.WriteLine("  Target.PageNumber:" + link.Target.PageNumber); 
            Console.WriteLine("  Target.Position:" + link.Target.Position); 
            Console.WriteLine("  Target.ZoomPercent:" + link.Target.ZoomPercent); 
         } 
         Console.WriteLine(); 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images"; 
} 
Requirements

Target Platforms

Help Version 22.0.2023.4.21
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Document Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.