←Select platform

Hyperlinks Property

Summary
Gets a list of the hyperlinks found in this page.
Syntax
C#
C++/CLI
Java
Python
public IList<PDFHyperlink> Hyperlinks {get;} 
public java.util.List<PDFHyperlink> getHyperlinks(); 
public: 
property IList<PDFHyperlink>^ Hyperlinks { 
   IList<PDFHyperlink>^ get(); 
} 
Hyperlinks # get  (PDFDocumentPage) 

Property Value

An IList of PDFHyperlink items that contain the hyperlinks found in the page. The default value is null.

Remarks

By default, the Annotations, Objects, FormFields, Signatures and Hyperlinks lists are not populated when a new PDFDocument is created and the values of these properties are null. You must call the PDFDocument.ParsePages method to parse the items are you interested in (depending on the PDFParsePagesOptions passed as the options parameter to the method). This is done for performance reasons and to give the user the ability to parse only the objects and pages of interest.

The Hyperlinks list will be populated if PDFParsePagesOptions.Hyperlinks is passed as part of the options parameter to PDFDocument.ParsePages. After this method returns, all the pages parsed will have their Hyperlinks properties populated either with a list of the hyperlinks found in the page or an empty list (with IList.Count equals to 0).

When parsing is finished, the Objects and Hyperlinks properties will contain a list of the PDFObject and PDFHyperlink items found in the page (if PDFParsePagesOptions.Objects and PDFParsePagesOptions.Hyperlinks was selected). Each of these items contain a PDFTextProperties object that contain the text properties of the item such its font information and color. One of these properties is PDFTextProperties.FontIndex which is the 0-based integer index to the font of the item in the Fonts list.

If PDFParsePagesOptions.Fonts is not passed to PDFDocument.ParsePages, but PDFParsePagesOptions.Objects and PDFParsePagesOptions.Hyperlinks was selected, then the fonts are not parsed and the PDFTextProperties.FontIndex value of any returned object will be 0.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Pdf; 
using Leadtools.WinForms; 
 
 
public void PDFDocumentPageExample() 
{ 
   string pdfFileName = Path.Combine(LEAD_VARS.ImagesDir, @"Leadtools.pdf"); 
   string txtFileName = Path.Combine(LEAD_VARS.ImagesDir, @"LEAD_pdf.txt"); 
 
   // Open the document 
   using (PDFDocument document = new PDFDocument(pdfFileName)) 
   { 
      // Parse everything and for all pages 
      PDFParsePagesOptions options = PDFParsePagesOptions.All; 
      document.ParsePages(options, 1, -1); 
 
      // Save the results to the text file for examining 
      using (StreamWriter writer = File.CreateText(txtFileName)) 
      { 
         foreach (PDFDocumentPage page in document.Pages) 
         { 
            writer.WriteLine("Page {0}", page.PageNumber); 
 
            IList<PDFObject> objects = page.Objects; 
            writer.WriteLine("Objects: {0}", objects.Count); 
            foreach (PDFObject obj in objects) 
            { 
               writer.WriteLine("  ObjectType: {0}", obj.ObjectType.ToString()); 
               writer.WriteLine("  Bounds: {0}, {1}, {2}, {3}", obj.Bounds.Left, obj.Bounds.Top, obj.Bounds.Right, obj.Bounds.Bottom); 
               WriteTextProperties(writer, obj.TextProperties); 
               writer.WriteLine("  Code: {0}", obj.Code); 
               writer.WriteLine("------"); 
            } 
            writer.WriteLine("---------------------"); 
 
            IList<PDFHyperlink> hyperlinks = page.Hyperlinks; 
            writer.WriteLine("Hyperlinks: {0}", hyperlinks.Count); 
            foreach (PDFHyperlink hyperlink in hyperlinks) 
            { 
               writer.WriteLine("  Hyperlink: {0}", hyperlink.Hyperlink); 
               writer.WriteLine("  Bounds: {0}, {1}, {2}, {3}", hyperlink.Bounds.Left, hyperlink.Bounds.Top, hyperlink.Bounds.Right, hyperlink.Bounds.Bottom); 
               WriteTextProperties(writer, hyperlink.TextProperties); 
            } 
            writer.WriteLine("---------------------"); 
         } 
      } 
   } 
} 
 
private static void WriteTextProperties(StreamWriter writer, PDFTextProperties textProperties) 
{ 
   writer.WriteLine("  TextProperties.FontHeight: {0}", textProperties.FontHeight.ToString()); 
   writer.WriteLine("  TextProperties.FontWidth: {0}", textProperties.FontWidth.ToString()); 
   writer.WriteLine("  TextProperties.FontIndex: {0}", textProperties.FontIndex.ToString()); 
   writer.WriteLine("  TextProperties.IsEndOfWord: {0}", textProperties.IsEndOfWord.ToString()); 
   writer.WriteLine("  TextProperties.IsEndOfLine: {0}", textProperties.IsEndOfLine.ToString()); 
   writer.WriteLine("  TextProperties.Color: {0}", textProperties.Color.ToString()); 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.File; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.io.OutputStreamWriter; 
import java.util.List; 
 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.pdf.*; 
 
 
public void pdfDocumentPagesExample() throws IOException { 
 
   final String LEAD_VARS_IMAGES_DIR = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String pdfFileName = combine(LEAD_VARS_IMAGES_DIR, "Leadtools.pdf"); 
   String txtFileName = combine(LEAD_VARS_IMAGES_DIR, "LEAD_pdf.txt"); 
 
   // Open the document 
   PDFDocument document = new PDFDocument(pdfFileName); 
 
   // Parse everything and for all pages 
   PDFParsePagesOptions options = PDFParsePagesOptions.ALL; 
   document.parsePages(options.getValue(), 1, -1); 
 
   // Save the results to the text file for examining 
   OutputStream outStream = new FileOutputStream(txtFileName); 
   OutputStreamWriter writer = new OutputStreamWriter(outStream); 
 
   for (PDFDocumentPage page : document.getPages()) { 
 
      writer.write("Page " + page.getPageNumber() + "\n"); 
 
      List<PDFObject> objects = page.getObjects(); 
      writer.write("Objects: " + objects.size() + "\n"); 
 
      for (PDFObject obj : objects) { 
 
         writer.write(" ObjectType: " + obj.getObjectType() + "\n"); 
         writer.write(" Bounds: " + obj.getBounds().getLeft() + " " + obj.getBounds().getTop() + " " 
               + obj.getBounds().getRight() + " " + obj.getBounds().getBottom() + "\n"); 
         writeTextProperties(writer, obj.getTextProperties()); 
         writer.write(" Code: " + obj.getCode() + "\n"); 
         writer.write("------\n"); 
      } 
      writer.write("---------------------\n"); 
 
      List<PDFHyperlink> hyperlinks = page.getHyperlinks(); 
      writer.write("Hyperlinks: " + hyperlinks.size() + "\n"); 
 
      for (PDFHyperlink hyperlink : hyperlinks) { 
 
         writer.write(" Hyperlink: " + hyperlink.getHyperlink() + "\n"); 
         writer.write(" Bounds: " + hyperlink.getBounds().getLeft() + " " + hyperlink.getBounds().getTop() + " " 
               + hyperlink.getBounds().getRight() + " " + hyperlink.getBounds().getBottom() + "\n"); 
         writeTextProperties(writer, hyperlink.getTextProperties()); 
 
      } 
      writer.write("---------------------\n"); 
   } 
 
   assertTrue("Properties and info outputted", new File(txtFileName).exists()); 
   System.out.println("no errors or exceptions, output printed successfully"); 
   writer.close(); 
   document.dispose(); 
   outStream = null; 
 
} 
 
private void writeTextProperties(OutputStreamWriter writer, PDFTextProperties textProperties) 
      throws IOException { 
 
   writer.write(" TextProperties.FontHeight: " + textProperties.getFontHeight() + "\n"); 
   writer.write(" TextProperties.FontWidth: " + textProperties.getFontWidth() + "\n"); 
   writer.write(" TextProperties.FontIndex: " + textProperties.getFontIndex() + "\n"); 
   writer.write(" TextProperties.IsEndOfWord: " + textProperties.isEndOfWord() + "\n"); 
   writer.write(" TextProperties.IsEndOfLine: " + textProperties.isEndOfLine() + "\n"); 
   writer.write(" TextProperties.Color: " + textProperties.getColor() + "\n"); 
   System.out.println("no errors or exceptions, output printed successfully"); 
 
} 
Requirements

Target Platforms

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

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