property WebLinkCount[PageNumber: Integer]: Integer; // read only
WebLinkCount는 렌더링된 text page를 스캔해 PageNumber 인자로 지정한 page에서 PDFium이 발견한 URL pattern 수를 보고합니다. PDF 작성자가 선언한 명시적 /Link annotation을 세는 LinkAnnotationCount와 달리, WebLinkCount는 클릭 가능한 annotation으로 감싸지지 않은 채 일반 text로 나타나는 URL(https://example.com 같은 것)을 드러냅니다. PDFium은 FPDF_TEXTPAGE에서 FPDFLink_LoadWebLinks pattern matching을 사용해 http, https, mailto: 및 몇몇 다른 common URI scheme을 찾습니다
Active가 False이거나 URL pattern을 찾지 못하면 값은 0입니다. PageNumber는 1 .. PageCount 범위로 전달하세요. WebLinkCount는 TPdfView.OnWebLinkClick과 loAutoOpenURI option이 쓰는 auto-detection layer를 구동하며, 둘 다 같은 scan result에 의존합니다
WebLink[PageNumber, Index]를 사용해 TWebLink record를 가져오세요(여기에는 URL string과 TPdfRectangle bounding box array가 들어 있으며, 단일 URL이 줄바꿈될 수 있으므로 line마다 하나씩 들어 있습니다). scan은 page가 다시 로드될 때까지 page별로 cache되므로 WebLinkCount를 반복해서 읽는 비용은 적고, 특정 page에 대한 첫 읽기에서 실제 scan이 수행됩니다
LinkAnnotationCount와 0이 아닌 WebLinkCount를 둘 다 돌려줄 수 있습니다TPdfView.OnWebLinkClick를 구독하고 Handled parameter를 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;