PDFium Delphi Component Docs

RectangleCount Metodo

Componente: TPdf  ·  Unità: PDFium
Conta il numero di aree rettangolari occupate da un segmento di testo. La funzione unisce automaticamente i piccoli riquadri dei caratteri in uno più grande se quei caratteri si trovano sulla stessa riga e usano le stesse impostazioni del font

Syntax

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

StartIndexInteger. Indice a base zero del primo carattere del segmento da misurare. Vale 0 per default
CountInteger. Numero di caratteri da includere nella misurazione a partire da StartIndex. Vale MaxInt per default, coprendo tutti i caratteri rimanenti della pagina

Return Value

Il numero di rettangoli di bounding uniti che coprono il segmento di caratteri specificato. Dopo la chiamata ogni rettangolo è accessibile tramite la proprietà indicizzata Rectangle[0] fino a Rectangle[RectangleCount - 1]

Description

RectangleCount calcola l'insieme dei riquadri di delimitazione che insieme coprono una sequenza contigua di caratteri nella pagina corrente. I caratteri sulla stessa riga che condividono le stesse impostazioni del font vengono automaticamente uniti in un singolo rettangolo, riducendo il risultato al numero minimo di riquadri non sovrapposti necessari per evidenziare il testo

I parametri StartIndex e Count definiscono il segmento di caratteri da misurare. Un uso tipico è passare l'indice di corrispondenza restituito da FindFirst o FindNext come StartIndex e la lunghezza della stringa di ricerca come Count, per ottenere i rettangoli di evidenziazione di un risultato di ricerca

I rettangoli restituiti sono memorizzati in un buffer interno e rimangono validi fino alla successiva chiamata a RectangleCount. Recupera ogni rettangolo leggendo la proprietà Rectangle[Index] per Index nell'intervallo da 0 a RectangleCount - 1. Tutte le coordinate sono in unità dello spazio utente PDF (punti, origine nell'angolo inferiore sinistro)

Per un semplice conteggio di tutti i caratteri della pagina usa CharacterCount; per trovare dove si trova un carattere specifico sulla pagina usa 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];
      // 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;

See Also

Rectangle, FindFirst, CharacterCount, CharacterIndexAtPos, Text