PDFium Component Docs

RectangleCount Methode

Dieser API-Eintrag behält Bezeichner, Signaturen, Codeblöcke und PDF-Begriffe in ihrer Originalform.
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. Nullbasierter Index des ersten Zeichens im zu messenden Segment. Standardwert ist 0
CountInteger. Anzahl der Zeichen, die in die Messung einbezogen werden, beginnend bei StartIndex. Standardwert ist MaxInt, womit alle verbleibenden Zeichen auf der Seite erfasst werden

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

Beschreibung

RectangleCount berechnet die Menge von Begrenzungsrechtecken, die zusammen einen zusammenhängenden Lauf von Zeichen auf der aktuellen Seite abdecken. Zeichen auf derselben Zeile mit denselben Schrifteinstellungen werden automatisch zu einem einzigen Rechteck zusammengeführt, sodass das Ergebnis auf die minimale Anzahl nicht überlappender Boxen reduziert wird, die zum Hervorheben des Textes nötig sind

Die Parameter StartIndex und Count definieren das zu messende Zeichensegment. Typisch ist es, den von FindFirst oder FindNext zurückgegebenen Trefferindex als StartIndex und die Länge des Suchtexts 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. Lesen Sie jedes Rechteck über die Eigenschaft Rectangle[Index] für Index im Bereich von 0 bis RectangleCount - 1. Alle Koordinaten liegen in PDF-User-Space-Einheiten vor (Punkte, Ursprung unten links)

Für eine reine Zählung aller Zeichen auf der Seite verwenden Sie CharacterCount; um zu finden, wo ein bestimmtes Zeichen auf der Seite liegt, verwenden Sie CharacterIndexAtPos

Beispiel

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

Siehe auch

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text