Indicates whether to parse links from the text of the pages.
public bool AutoParseLinks { get; set; }
true to parse links from the text of the pages; otherwise, false. Default value is true.
The document class supports automatic parsing of two types of links
Page links: These are links that are found in the original document and they contain a hot spot area that when clicked, invoke a target; usually, a jump to a different location or page in the document. These links have a value of DocumentLink.LinkType set to DocumentLinkType.TargetPage.
Hyperlinks: These are links that are found in the text of each page. The links are parsed when the text is first obtained and they contain the text bounding box, the value of the link (the text itself) and have a value of LinkType set to DocumentLinkType.Value.
The page links are parsed from the original document when DocumentStructure.Parse is called and the value of DocumentStructure.ParsePageLinks is set to true. Any links found are stored inside the page and can be retrieved using DocumentPage.GetLinks.
The hyperlinks are parsed the first time DocumentPage.GetText is called and the value of DocumentText.AutoParseLinks is set to true (the default value). The document object will use the regular expressions stored in LinkPatterns to find any matches in the text of the page with each match added as a link of type DocumentLinkType.Value to the page. These can also be retrieved with DocumentPage.GetLinks after GetText returns.
The link parsing is performed by calling ParseLinks on the page using the regular expressions stored in LinkPatterns.
If the value of AutoParseLinks is false then no automatic parsing for links will occur.
Note that setting this property to a value will update the same value in each child document.
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";
}