PDFium Delphi Component Docs

CharacterIndexAtPos metod

Component: TPdf  ·  Unit: PDFium
Dohvata indeks znaka na ili blizu određene pozicije na stranici. Ako nema znaka na ili blizu tačke, povratna vrednost je -1. Ako dođe do greške, vratiće se -3

Syntax

function CharacterIndexAtPos(X, Y, ToleranceX, ToleranceY: Double): Integer;

Return Value

Indeks zasnovan na nuli najbližeg znaka, -1 ako nijedan znak ne pada u zadatu oblast tolerancije ili -3 ako dođe do interne greške (na primer, ako nijedna strana nije učitana)

Description

CharacterIndexAtPos preslikava tačku u PDF korisničkim koordinatama na indeks najbližeg znaka na trenutnoj strani. To je inverzna operacija čitanja Character[Index] ili RectangleCount: za datu poziciju (kao što je klik mišem preveden u koordinate strane) identifikuje na koji znak je korisnik pokazao

Parametri X i Y određuju tačku upita u PDF korisničkim jedinicama. Ishodište je u donjem levom uglu strane, Y raste naviše. Parametri ToleranceX i ToleranceY proširuju pravougaonu oblast pretrage oko tačke upita; svaki znak čija granična kutija preseca tu oblast je kandidat

Ako se nijedan znak ne nađe u oblasti tolerancije, funkcija vraća -1. Povratna vrednost -3 označava grešku, tipično zato što nijedna strana trenutno nije otvorena. Pri uspehu se vraćeni indeks može direktno proslediti u RectangleCount, Character ili koristiti kao argument StartIndex funkcije FindFirst

Prilikom konvertovanja ekranskih (pikselnih) koordinata u PDF korisničke koordinate, koristite širinu i visinu strane zajedno sa trenutnim nivoom zumiranja za odgovarajuće skaliranje

Example

var
  CharIdx: Integer;
  PageX, PageY: Double;
begin
  Pdf1.PageIndex := 0;
  // PageX/PageY are already converted to PDF user-space units
  PageX := 150.0;
  PageY := 400.0;
  CharIdx := Pdf1.CharacterIndexAtPos(PageX, PageY, 5.0, 5.0);
  if CharIdx >= 0 then
    ShowMessage('Character: ' + Pdf1.Character[CharIdx])
  else if CharIdx = -1 then
    ShowMessage('No character at that position')
  else
    ShowMessage('Error retrieving character');
end;

See Also

CharacterCount, Character, FindFirst, RectangleCount