←Select platform

SourceBounds Property

Summary
Source bounds of this internal link.
Syntax
C#
C++/CLI
Java
Python
public PDFRect SourceBounds { get; set; } 
public PDFRect getSourceBounds(); 
public void setSourceBounds( 
   PDFRect pDFRect 
); 
public: 
property PDFRect SourceBounds { 
   PDFRect get(); 
   void set (    PDFRect ); 
} 
SourceBounds # get and set (PDFInternalLink) 

Property Value

A PDFRect that represents the source location and size of this internal link, in PDF units (1/72 of an inch and bottom left). The default value is an empty PDFRect.

Remarks

The SourceBounds is the hot spot area of the internal link. An external viewer may choose to change the mouse cursor shape to a "Hand" when the user hovers over this link and proceed to perform the action of the link when the user clicks the link.

You can use the PDFDocumentPage.ConvertRect helper method to convert from pixel or inches to PDF units and back.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Controls; 
using Leadtools.Pdf; 
using Leadtools.Svg; 
using Leadtools.WinForms; 
 
 
public void PDFDocumentParseDocumentStructureExample() 
{ 
   string pdfFileName1 = Path.Combine(LEAD_VARS.ImagesDir, @"Leadtools.pdf"); 
   string pdfFileName2 = Path.Combine(LEAD_VARS.ImagesDir, @"Bookmarks.pdf"); 
 
   // Create a version of the source file with a few bookmarks 
   PDFFile file = new PDFFile(pdfFileName1); 
   // Load the pages 
   file.Load(); 
   List<PDFBookmark> bookmarks = new List<PDFBookmark>(); 
 
   // We will bookmarks for each page, cascading levels: 
   // Goto page 1 
   //    Goto page 2 
   //       Goto page 3 
   //          Goto page 4 
   int level = 0; 
   for (int i = 0; i < file.Pages.Count; i++) 
   { 
      PDFFilePage page = file.Pages[i]; 
 
      PDFBookmark bookmark = new PDFBookmark(); 
      bookmark.Title = "Goto page " + page.PageNumber.ToString(); 
      bookmark.BookmarkStyle = PDFBookmarkStyle.Plain; 
      bookmark.Level = level; 
      bookmark.TargetPageNumber = page.PageNumber; 
      bookmark.TargetPageFitType = PDFPageFitType.Default; 
      bookmark.TargetPosition = new PDFPoint(0, page.Height); 
      bookmark.TargetZoomPercent = 0; 
      bookmarks.Add(bookmark); 
 
      level++; 
      if (level > 8) 
      { 
         // Reset levels 
         level = 0; 
      } 
   } 
 
   file.WriteBookmarks(bookmarks, pdfFileName2); 
 
   // Create a document for the output file 
   using (PDFDocument document = new PDFDocument(pdfFileName2)) 
   { 
      // Now read the bookmarks and internal links in the document 
      document.ParseDocumentStructure(PDFParseDocumentStructureOptions.InternalLinks | PDFParseDocumentStructureOptions.Bookmarks); 
 
      Console.WriteLine("{0} bookmarks found:", document.Bookmarks.Count); 
      foreach (PDFBookmark bookmark in document.Bookmarks) 
      { 
         Console.WriteLine(" Title: {0}, Level: {1}, Target page: {2}", bookmark.Title, bookmark.Level, bookmark.TargetPageNumber); 
      } 
 
      Console.WriteLine("{0} Internal links found:", document.InternalLinks.Count); 
      foreach (PDFInternalLink internalLink in document.InternalLinks) 
      { 
         Console.WriteLine(" Source bounds: {0}, Target page: {1}", internalLink.SourceBounds, internalLink.TargetPageNumber); 
      } 
   } 
} 
 
static class LEAD_VARS 
{ 
   public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images"; 
} 
 
import java.io.BufferedWriter; 
import java.io.Console; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.io.OutputStreamWriter; 
import java.nio.Buffer; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.nio.file.StandardOpenOption; 
import java.sql.Date; 
import java.text.SimpleDateFormat; 
import java.time.LocalDateTime; 
import java.util.ArrayList; 
import java.util.List; 
 
import javax.xml.validation.Schema; 
 
import org.apache.lucene.store.Directory; 
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.*; 
import leadtools.barcode.*; 
import leadtools.codecs.*; 
import leadtools.pdf.*; 
import leadtools.svg.*; 
 
 
public void pdfDocumentParseDocumentStructureExample() { 
   String LEAD_VARS_ImagesDir = "C:\\LEADTOOLS23\\Resources\\Images"; 
   String pdfFileName1 = combine(LEAD_VARS_ImagesDir, "Leadtools.pdf"); 
   String pdfFileName2 = combine(LEAD_VARS_ImagesDir, "Bookmarks.pdf"); 
 
   // Create a version of the source file with a few bookmarks 
   PDFFile file = new PDFFile(pdfFileName1); 
   // Load the pages 
   file.load(); 
   ArrayList<PDFBookmark> bookmarks = new ArrayList<PDFBookmark>(); 
 
   // We will bookmarks for each page, cascading levels: 
   // Goto page 1 
   // Goto page 2 
   // Goto page 3 
   // Goto page 4 
   int level = 0; 
   for (int i = 0; i < file.getPageCount(); i++) { 
 
      PDFFilePage page = file.getPages().get(i); 
      PDFBookmark bookmark = new PDFBookmark(); 
      bookmark.setTitle("Goto page " + page.getPageNumber()); 
      bookmark.setBookmarkStyle(PDFBookmarkStyle.PLAIN); 
      bookmark.setLevel(level); 
      bookmark.setTargetPageNumber(page.getPageNumber()); 
      bookmark.setTargetPageFitType(PDFPageFitType.DEFAULT); 
      bookmark.setTargetPosition(new PDFPoint(0, page.getHeight())); 
      bookmark.setTargetZoomPercent(0); 
      bookmarks.add(bookmark); 
 
      level++; 
      if (level > 8) { 
         // Reset levels 
         level = 0; 
      } 
 
   } 
   file.writeBookmarks(bookmarks, pdfFileName2); 
 
   // Create a document for the output file 
   PDFDocument document = new PDFDocument(pdfFileName2); 
   // Now read the bookmarks and internal links in the document 
   document.parseDocumentStructure(PDFParseDocumentStructureOptions.INTERNAL_LINKS.getValue() 
         | PDFParseDocumentStructureOptions.BOOKMARKS.getValue()); 
 
   System.out.printf("%1s bookmarks found:%n", document.getBookmarks().size()); 
   assertTrue(document.getBookmarks().size() == 25); 
   for (PDFBookmark bookmark : document.getBookmarks()) { 
      System.out.printf(" Title: %1s, Level: %2s, Target page: %3s%n", bookmark.getTitle(), bookmark.getLevel(), 
            bookmark.getTargetPageNumber()); 
   } 
 
   System.out.printf("%1s Internal links found:%n", document.getInternalLinks().size()); 
   assertTrue(document.getInternalLinks().size() == 18); 
   for (PDFInternalLink internalLink : document.getInternalLinks()) { 
      System.out.printf(" Source bounds: %1s, Target page: %2s%n", internalLink.getSourceBounds(), 
            internalLink.getTargetPageNumber()); 
   } 
 
} 
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.