function RectangleCount(StartIndex: Integer = 0; Count: Integer = MaxInt): Integer;
| StartIndex | Integer. Der nullbasierte Index des ersten Zeichens im zu messenden Segment. Standard ist 0 |
| Count | Integer. Die Anzahl der in die Messung einzubeziehenden Zeichen, beginnend bei StartIndex. Standard ist MaxInt, was alle übrigen Zeichen auf der Seite abdeckt |
Rectangle[0] bis Rectangle[RectangleCount - 1] zugänglichRectangleCount berechnet die Menge der Begrenzungsrechtecke, die zusammen eine zusammenhängende Zeichenfolge auf der aktuellen Seite abdecken. Zeichen in derselben Zeile mit denselben Schrifteinstellungen werden automatisch zu einem einzigen Rechteck zusammengeführt, wodurch das Ergebnis auf die minimale Anzahl nicht überlappender Boxen reduziert wird, die zum Hervorheben des Texts erforderlich sind
Die Parameter StartIndex und Count definieren das zu messende Zeichensegment. Eine typische Verwendung besteht darin, den von FindFirst oder FindNext zurückgegebenen Trefferindex als StartIndex und die Länge der Suchzeichenkette als Count zu übergeben, um Hervorhebungsrechtecke für ein Suchergebnis zu erhalten
Die zurückgegebenen Rechtecke werden in einem internen Puffer gespeichert und bleiben bis zum nächsten Aufruf von RectangleCount gültig. Rufen Sie jedes Rechteck über die Eigenschaft Rectangle[Index] für Index im Bereich von 0 bis RectangleCount - 1 ab. Alle Koordinaten liegen in PDF-Benutzereinheiten vor (Punkte, Ursprung unten links)
Für eine einfache Zählung aller Zeichen auf der Seite verwenden Sie CharacterCount; um zu ermitteln, wo ein bestimmtes Zeichen auf der Seite liegt, verwenden Sie CharacterIndexAtPos
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];
// Eine Hervorhebungsbox mit Rect.Left/Top/Right/Bottom zeichnen
Memo1.Lines.Add(Format('Rect %d: (%.1f, %.1f, %.1f, %.1f)',
[I, Rect.Left, Rect.Bottom, Rect.Right, Rect.Top]));
end;
end;
end;