PDFium Component Docs

RectangleCount Yöntem

Bu API girdisi tanımlayıcıları, imzaları, kod bloklarını ve PDF terimlerini özgün biçiminde korur.
Bileşen: TPdf  ·  Birim: PDFium
Bir metin segmentinin kapladığı dikdörtgen alanların sayısını sayar. İşlev, aynı satırda olup aynı font ayarlarını kullanan küçük karakter kutularını otomatik olarak daha büyük bir kutuda birleştirir

Söz dizimi

function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;

StartIndexTamsayı. Ölçülecek segmentteki ilk karakterin 0 tabanlı dizini. Varsayılan 0
CountTamsayı. StartIndex değerinden başlayarak ölçüme dahil edilecek karakter sayısı. Varsayılan MaxInt; bu, sayfadaki kalan tüm karakterleri kapsar

Dönüş Değeri

Belirtilen karakter segmentini kapsayan birleştirilmiş bounding rectangle sayısı. Bu çağrıdan sonra her rectangle'a Rectangle[0] ile Rectangle[RectangleCount - 1] arasındaki dizinli özellik üzerinden erişilebilir

Açıklama

RectangleCount, geçerli sayfadaki birbirini izleyen karakterlerden oluşan bir run'ı birlikte kapsayan bounding rectangle kümesini hesaplar. Aynı satırda olup aynı font ayarlarını paylaşan karakterler otomatik olarak tek bir rectangle'a birleştirilir; böylece sonuç, metni vurgulamak için gereken çakışmayan kutuların en az sayısına iner

StartIndex ve Count parametreleri ölçülecek karakter segmentini tanımlar. Tipik kullanım, bir arama sonucu için vurgulama rectangle'ları elde etmek amacıyla FindFirst ya da FindNext tarafından döndürülen eşleşme dizinini StartIndex olarak, arama dizgesinin uzunluğunu da Count olarak geçmektir

Dönen rectangle'lar iç bir arabellek içinde saklanır ve RectangleCount'un bir sonraki çağrısına kadar geçerlidir. Her rectangle'a Rectangle[Index] özelliğini 0 ile RectangleCount - 1 aralığında okuyarak erişin. Tüm koordinatlar PDF user-space birimlerindedir (points, origin at lower-left)

Sayfadaki tüm karakterlerin düz sayımı için CharacterCount kullanın; belirli bir karakterin sayfadaki konumunu bulmak için CharacterIndexAtPos kullanın

Örnek

var
  MatchIdx, RCount, I: Integer;
  Rect: TPdfRectangle;
begin
  Pdf1.PageIndex := 0;
  MatchIdx := Pdf1.FindFirst('PDFium');
  if MatchIdx >= 0 then
  begin
    RCount := Pdf1.RectangleCount(MatchIdx, Length('PDFium'));
    for I := 0 to RCount - 1 do
    begin
      Rect := Pdf1.Rectangle[I];
      // Draw a highlight box using Rect.Left/Top/Right/Bottom
      Memo1.Lines.Add(Format('Rect %d: (%.1f, %.1f, %.1f, %.1f)',
        [I, Rect.Left, Rect.Bottom, Rect.Right, Rect.Top]));
    end;
  end;
end;

Ayrıca bkz.

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text