PDFium Component Docs

RectangleCount Methode

Component: TPdf  ·  Unit: PDFium
Telt het aantal rechthoekige gebieden dat door een tekstreeks wordt ingenomen. De functie voegt kleine tekenvakken automatisch samen tot een groter geheel wanneer die tekens op dezelfde regel staan en dezelfde lettertype-instellingen gebruiken

Syntax

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

StartIndexInteger. De 0-based index van het eerste teken in het op te meten segment. Standaard 0
CountInteger. Het aantal tekens dat vanaf StartIndex in de meting meedoet. Standaard MaxInt, waarmee alle resterende tekens op de pagina worden gedekt

Return Value

Het aantal samengevoegde begrenzingsrechthoeken dat het opgegeven tekensegment afdekt. Na deze aanroep is elke rechthoek toegankelijk via de geïndexeerde eigenschap van Rectangle[0] tot Rectangle[RectangleCount - 1]

Description

RectangleCount berekent de set begrenzingsrechthoeken die samen een aaneengesloten reeks tekens op de huidige pagina afdekken. Tekens op dezelfde regel met dezelfde fontinstellingen worden automatisch samengevoegd tot één rechthoek, waardoor het resultaat uit het minimale aantal niet-overlappende vakken bestaat dat nodig is om de tekst te markeren

De parameters StartIndex en Count bepalen het op te meten tekensegment. Een typisch gebruik is om de matchindex die FindFirst of FindNext teruggeeft als StartIndex mee te geven en de lengte van de zoekstring als Count, zodat u markeerrechthoeken voor een zoekresultaat krijgt

De teruggegeven rechthoeken staan in een interne buffer en blijven geldig tot de volgende aanroep van RectangleCount. Haal elke rechthoek op door de eigenschap Rectangle[Index] te lezen voor Index in het bereik 0 tot RectangleCount - 1. Alle coördinaten zijn in eenheden van de PDF-gebruikersruimte (punten, oorsprong linksonder)

Gebruik CharacterCount voor alleen het aantal tekens op de pagina; gebruik CharacterIndexAtPos om te vinden waar een specifiek teken op de pagina staat

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];
      // Teken een markeervak met 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