property WebLink[PageNumber, Index: Integer]: TWebLink; // read only
WebLink возвращает запись TWebLink для URL, обнаруженного по указанному PageNumber (нумерация с единицы) и Index (нумерация с нуля). Запись содержит строку Url (обычно http://, https:// или mailto:), массив Rectangles с ограничивающими прямоугольниками TPdfRectangle — по одному прямоугольнику на визуальную строку, потому что PDFium сообщает отдельные прямоугольники, когда один URL переносится на несколько строк — и диапазон символов текстовой страницы StartCharIndex и CharCount, покрытый ссылкой
Index принимает значения от 0 до WebLinkCount[PageNumber] - 1. Вне этого диапазона PDFium возвращает пустую запись (Url пуст, Rectangles равен nil). Обнаружение веб-ссылок выполняется лениво при первом чтении данной страницы и кэшируется до её перезагрузки; само чтение WebLink после завершения сканирования стоит O(1)
WebLink дополняет LinkAnnotation, который выдаёт явные аннотации /Link, объявленные автором PDF. Прямоугольники удобно использовать, чтобы строить кликабельные оверлеи поверх собственного рендерера или подсвечивать URL в извлечённом тексте. Данные доступны только для чтения — PDFium Delphi Component отдаёт результаты обнаружения, а не средства модификации. Чтобы вставить настоящие аннотации ссылок, используйте путь FPDFPage_CreateAnnot на базовом дескрипторе Page
TPdfView.PageToScreenTPdfView.OnAnnotationLinkClick, и TPdfView.OnWebLinkClick
var Link: TWebLink;
var I: Integer;
for I := 0 to Pdf1.WebLinkCount[1] - 1 do
begin
Link := Pdf1.WebLink[1, I];
Memo1.Lines.Add(Format('%s (%d rects)',
[Link.Url, Length(Link.Rectangles)]));
end;