ImageEn, unit iexUserInteractions

TIEPdfViewer.GetText

TIEPdfViewer.GetText


Declaration

function GetText(CharIndex, CharCount: Integer): string; overload;
function GetText(const R: TRect; ScreenValues: Boolean = True): string; overload;
function GetText(FormatLayout: Boolean = False): string; overload;


Description

Returns the text at the specified position and length (in characters) or within a specified area (in screen pixels or PDF positions).
The final overload returns all text on the current page. If FormatLayout is true it pads the output with extra lines and spaces to approximate the original layout (you should display with a fixed width font, such as "Courier New").

Note:
- CharIndex is zero-based
- To convert a screen position to a CharIndex, use ScrToCharIndex
- Result may include a new line character (#$A) so it is best to trim the result


Examples

s := ImageEnView1.PdfViewer.GetText( Rect( 100, 100, 200, 200 ));

// Show the text word the cursor
procedure TfrmMain.ImageEnView1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
var
  charIndex, textIndex, textLength: Integer;
begin
  charIndex := ImageEnView1.PdfViewer.ScrToCharIndex( X, Y );
  ImageEnView1.PdfViewer.CharIndexToWord( charIndex, textIndex, textLength );
  lblWord.Caption := Trim( ImageEnView1.PdfViewer.GetText( textIndex, textLength ));
end;

// Output all text of page to a memo (unformatted)
Memo1.Text := ImageEnView1.PdfViewer.GetText();

// Output all text of page to a memo (formatted with lines and leading spaces )
Memo1.Font.Name := 'Courier New'; // Fixed width font
Memo1.Text := ImageEnView1.PdfViewer.GetText( True );



// RESULT
{
                         INTERNATIONAL ORGANIZATION FOR STANDARDIZATION
                         TECHNICAL COMMITTEE 42

                         PHOTOGRAPHY

        Address Reply to:
        Secretariat ISO/TC42
        Photographic and Imaging
        Manufacturers Association, Inc.            ISO/TC42N  4378
        550 Mamaroneck Avenue
        Harrison, NY 10528 USA                     1998-11-24
        Phone: +1 914 698 7603                     Our ref: 42(WG18/Item 189.2)
        FAX:  + 1 914 698 7609
        Email: jimpeyton@pima.net
        Email2: jimpeyton@earthlink.net


                                                                               ISO/DIS 12234-2

                                                                                ISO/TC 42/WG 18
                                                                          Secretariat: ANSI (PIMA)
}

// Enable the "Export Text" button if page contains text
btnSaveText.Enabled := Length( ImageEnView1.PdfViewer.GetText( 0, 100 )) > 10;

// Output each line of text
var
  idx, outIndex, outLength: Integer;
  s: String;
begin
  Memo1.Clear;
  idx := 0;
  while idx < MAXINT do // Infinite loop
  begin
    ImageEnView1.PdfViewer.CharIndexToLine( idx, outIndex, outLength );
    if outLength = 0 then
      BREAK;
    s := ImageEnView1.PdfViewer.GetText( outIndex, outLength );
    memo1.Lines.Add( Trim( s ));
    idx := outIndex + outLength + 1;
  end;
end;


See Also

- CharIndexToWord
- CharIndexToLine
- GetWebLinkAt