PDFium Delphi Component Docs

RectangleCount Yöntem

Component: TPdf  ·  Unit: 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

Syntax

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

StartIndexInteger. Ölçülecek segmentteki ilk karakterin sıfır tabanlı indeksi. Varsayılan 0
CountInteger. StartIndex'ten başlayarak ölçüme dahil edilecek karakter sayısı. Varsayılan, sayfada kalan tüm karakterleri kapsayan MaxInt

Return Value

Belirtilen karakter segmentini kapsayan birleştirilmiş sınır dikdörtgenlerinin sayısı. Bu çağrıdan sonra her dikdörtgene Rectangle[0] ile Rectangle[RectangleCount - 1] arasındaki indeksli property üzerinden erişilir

Description

RectangleCount, geçerli sayfada bitişik bir karakter run'ını birlikte kapsayan sınır dikdörtgenleri kümesini hesaplar. Aynı font ayarlarını paylaşan aynı satırdaki karakterler otomatik olarak tek bir dikdörtgende birleştirilir; böylece sonuç, metni vurgulamak için gereken örtüşmeyen en az sayıda kutuya iner

StartIndex ve Count parametreleri ölçülecek karakter segmentini tanımlar. Tipik kullanım; bir arama sonucu için vurgulama dikdörtgenleri elde etmek üzere FindFirst veya FindNext'in döndürdüğü eşleşme indeksini StartIndex olarak, arama stringinin uzunluğunu da Count olarak geçmektir

Döndürülen dikdörtgenler dahili bir tamponda saklanır ve bir sonraki RectangleCount çağrısına kadar geçerli kalır. Her dikdörtgeni, 0 ile RectangleCount - 1 aralığındaki Index için Rectangle[Index] property'sini okuyarak alın. Tüm koordinatlar PDF user-space birimlerindedir (point, başlangıç noktası sol altta)

Sayfadaki tüm karakterlerin sade bir sayısı için CharacterCount'u; belirli bir karakterin sayfada nerede durduğunu bulmak için CharacterIndexAtPos'u kullanın

Example

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;

See Also

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text