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
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;