PDFium Delphi Component Docs

RectangleCount Methode

Komponente: TPdf  ·  Unit: PDFium
Zählt die Anzahl der rechteckigen Bereiche, die von einem Textsegment belegt werden. Die Funktion führt kleine Zeichenboxen automatisch zu einer größeren zusammen, wenn diese Zeichen auf derselben Zeile liegen und dieselben Schrifteinstellungen verwenden

Syntax

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

StartIndexInteger. Der nullbasierte Index des ersten Zeichens im zu messenden Segment. Standard ist 0
CountInteger. Die Anzahl der in die Messung einzubeziehenden Zeichen, beginnend bei StartIndex. Standard ist MaxInt, was alle übrigen Zeichen auf der Seite abdeckt

Return Value

Die Anzahl zusammengeführter Begrenzungsrechtecke, die das angegebene Zeichensegment abdecken. Nach diesem Aufruf ist jedes Rechteck über die indizierte Eigenschaft Rectangle[0] bis Rectangle[RectangleCount - 1] zugänglich

Description

RectangleCount 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

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];
      // 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;

See Also

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text