property WebLinkCount[PageNumber: Integer]: Integer; // read only
WebLinkCount сообщает количество шаблонов URL, обнаруженных PDFium на странице,
заданной аргументом PageNumber (отсчёт от 1), путём сканирования
отрисованной текстовой страницы. В отличие от LinkAnnotationCount —
который подсчитывает явные аннотации /Link, объявленные автором PDF —
WebLinkCount выявляет URL, появляющиеся как обычный текст (например,
https://example.com), но не обёрнутые в кликабельную
аннотацию. PDFium использует сопоставление шаблонов
(FPDFLink_LoadWebLinks на FPDF_TEXTPAGE) для обнаружения
http, https, mailto: и нескольких других
распространённых схем URI
Значение равно 0, когда Active равно False
или когда не найдено ни одного шаблона URL. Передавайте PageNumber в
диапазоне 1 .. PageCount. WebLinkCount управляет уровнем
автообнаружения, используемым TPdfView.OnWebLinkClick и параметром
loAutoOpenURI — оба полагаются на одни и те же результаты сканирования
Используйте WebLink[PageNumber, Index] для получения записи
TWebLink (строка URL плюс массив ограничивающих прямоугольников
TPdfRectangle, по одному на строку, так как один URL может
переноситься). Результаты сканирования кэшируются для каждой страницы до её
перезагрузки, поэтому повторные чтения WebLinkCount дёшевы; первое чтение для
данной страницы выполняет фактическое сканирование
LinkAnnotationCount,
так и ненулевой WebLinkCount для одного и того же URLTPdfView.OnWebLinkClick и установите параметр
Handled в True
var P, I: Integer;
var Link: TWebLink;
for P := 1 to Pdf1.PageCount do
for I := 0 to Pdf1.WebLinkCount[P] - 1 do
begin
Link := Pdf1.WebLink[P, I];
Memo1.Lines.Add(Link.Url);
end;