property WebLinkCount[PageNumber: Integer]: Integer; // read only
WebLinkCount 报告 PDFium 通过扫描已渲染文本页面,
在由从一开始的 PageNumber 参数标识的页面上发现的 URL 模式数量。
与 LinkAnnotationCount(计算 PDF 作者声明的显式
/Link 注释)不同 — WebLinkCount 显示作为纯文本出现
(例如 https://example.com)但未包装在可单击注释中的 URL。
PDFium 使用模式匹配(对 FPDF_TEXTPAGE 执行 FPDFLink_LoadWebLinks)
来发现 http、https、mailto: 和少数其他
常见 URI 方案
当 Active 为 False 或未找到 URL 模式时,该值为 0。
请在 1 .. PageCount 范围内传递 PageNumber。
WebLinkCount 驱动 TPdfView.OnWebLinkClick 和 loAutoOpenURI 选项使用的自动检测层 —
两者都依赖相同的扫描结果
使用 WebLink[PageNumber, Index] 检索 TWebLink
记录(URL 字符串加上 TPdfRectangle 边界框数组,
每行一个,因为单个 URL 可以换行)。扫描按页面缓存直到页面重新加载,
因此重复读取 WebLinkCount 成本很低;给定页面的首次读取执行实际扫描
LinkAnnotationCount 和
非零的 WebLinkCountTPdfView.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;