PDFium Component Docs

RectangleCount Methode

Deze API-entry behoudt identifiers, signatures, codeblokken en PDF-termen in hun oorspronkelijke vorm.
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

Syntaxis

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

StartIndexInteger. De 0-gebaseerde index van het eerste teken in het te meten segment. Standaard 0
CountInteger. Aantal tekens om in de meting op te nemen, vanaf StartIndex. Standaard MaxInt, wat alle resterende tekens op de pagina omvat

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]

Beschrijving

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

De parameters StartIndex en Count bepalen welk tekensegment wordt gemeten. Een gebruikelijk scenario is de match-index door te geven die door FindFirst of FindNext wordt teruggegeven als StartIndex, en de lengte van de zoekreeks als Count, om highlightrechthoeken voor een zoekresultaat te verkrijgen

De geretourneerde rechthoeken worden opgeslagen 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 PDF user-space eenheden (punten, oorsprong linksonder)

Gebruik voor een eenvoudige telling van alle tekens op de pagina CharacterCount; om te vinden waar een specifiek teken op de pagina staat gebruikt u CharacterIndexAtPos

Voorbeeld

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;

Zie ook

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text