property WebLinkCount[PageNumber: Integer]: Integer; // read only
WebLinkCount сообщает количество шаблонов URL, обнаруженных PDFium на странице, определенной по 1-базовому аргументу PageNumber, путем сканирования отрисованной текстовой страницы В отличие от 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;