Foxit PDF SDK
foxit::pdf::TextSearch Class Reference
Inheritance diagram for foxit::pdf::TextSearch:
foxit::Base

Public Types

enum  SearchFlags { e_SearchNormal = 0x00, e_SearchMatchCase = 0x01, e_SearchMatchWholeWord = 0x02, e_SearchConsecutive = 0x04 }
 Enumeration for searching flags. More...
 

Public Member Functions

 TextSearch (const PDFDoc &document, SearchCancelCallback *cancel=0, int flags=foxit::pdf::TextPage::e_ParseTextNormal)
 Constructor, for a PDF document. More...
 
 TextSearch (const foxit::addon::xfa::XFADoc &xfa_document, foxit::pdf::SearchCancelCallback *cancel=0)
 Constructor, for a specified XFA document. More...
 
 TextSearch (const foxit::pdf::TextPage &text_page)
 Constructor, for a specified text page. More...
 
 TextSearch (const foxit::pdf::annots::Annot &annot)
 Constructor, for a specified PDF annotation. More...
 
 TextSearch (const TextSearch &other)
 Constructor, with another text search object. More...
 
 ~TextSearch ()
 Destructor.
 
bool FindNext ()
 Search for next matched pattern. More...
 
bool FindPrev ()
 Search for previous matched pattern. More...
 
int GetMatchEndCharIndex () const
 Get the index of the last character of current match pattern, based on current match page. More...
 
int GetMatchPageIndex () const
 Get the page index, to which current match belongs. More...
 
RectFArray GetMatchRects () const
 Get the rectangles of current match pattern. More...
 
WString GetMatchSentence ()
 Get the sentence that contains current match pattern. More...
 
int GetMatchSentenceEndIndex ()
 Get the index of the last character of current matched pattern, based on the matched sentence. More...
 
int GetMatchSentenceStartIndex ()
 Get the index of the first character of current matched pattern, based on the matched sentence. More...
 
int GetMatchStartCharIndex () const
 Get the index of the first character of current match pattern, based on current match page. More...
 
bool IsEmpty () const
 Check whether current object is empty or not. More...
 
bool operator != (const TextSearch &other) const
 Not equal operator. More...
 
TextSearchoperator= (const TextSearch &other)
 Assign operator. More...
 
bool operator== (const TextSearch &other) const
 Equal operator. More...
 
bool SetEndPage (int page_index)
 Set ending page index. More...
 
bool SetPattern (const wchar_t *key_words)
 Set keywords to search. More...
 
bool SetSearchFlags (uint32 search_flags)
 Set search flags. More...
 
bool SetStartCharacter (int char_index)
 Set starting character index, from where the search process is to be started. More...
 
bool SetStartPage (int page_index)
 Set starting page index. More...
 
- Public Member Functions inherited from foxit::Base
FS_HANDLE Handle () const
 Get the handle of current object. More...
 

Detailed Description

This class can construct text search in a PDF document/an XFA document/a text page or in a PDF annotation's appearance. It offers functions to do a text search and get the searching result:

Member Enumeration Documentation

◆ SearchFlags

Enumeration for searching flags.

Values of this enumeration can be used alone or in combination.

Enumerator
e_SearchNormal 

No special searching options.

e_SearchMatchCase 

If set, match the case of keyword when searching.

e_SearchMatchWholeWord 

If set, match the whole word of keyword when searching.

e_SearchConsecutive 

If set, match the key word consecutively when searching. For example, "CC" will be matched twice in "CCC".

Constructor & Destructor Documentation

◆ TextSearch() [1/5]

foxit::pdf::TextSearch::TextSearch ( const PDFDoc document,
SearchCancelCallback cancel = 0,
int  flags = foxit::pdf::TextPage::e_ParseTextNormal 
)
explicit

Constructor, for a PDF document.

User can set a valid SearchCancelCallback object in order to decide whether to cancel the searching process or not when the callback function in SearchCancelCallback is triggered.

Parameters
[in]documentA valid PDF document object.
[in]cancelA SearchCancelCallback object which decides if the searching process needs to be canceled when the callback function is triggered. This can be NULL which means not to cancel the searching process. If this is not NULL, it should be a valid SearchCancelCallback object implemented by user. Default value: NULL.
[in]flagsParsing flags used for parsing text during searching. Please refer to values starting from TextPage::e_ParseTextNormal and this can be one or combination of these values.
Default value: TextPage::e_ParseTextNormal.

◆ TextSearch() [2/5]

foxit::pdf::TextSearch::TextSearch ( const foxit::addon::xfa::XFADoc xfa_document,
foxit::pdf::SearchCancelCallback cancel = 0 
)
explicit

Constructor, for a specified XFA document.

Parameters
[in]xfa_documentA valid XFA document object. It should have been loaded by function addon::xfa::XFADoc::StartLoad.
[in]cancelA SearchCancelCallback object which decides if the searching process needs to be canceled when the callback function is triggered. This can be NULL which means not to cancel the searching process. If this is not NULL, it should be a valid SearchCancelCallback object implemented by user. Default value: NULL.

◆ TextSearch() [3/5]

foxit::pdf::TextSearch::TextSearch ( const foxit::pdf::TextPage text_page)
explicit

Constructor, for a specified text page.

Parameters
[in]text_pageA text page object.

◆ TextSearch() [4/5]

foxit::pdf::TextSearch::TextSearch ( const foxit::pdf::annots::Annot annot)
explicit

Constructor, for a specified PDF annotation.

Currently, only support to search in appearance of following annotation types: freetext annotation, stamp annotation, widget annotation, and line annotation.

Parameters
[in]annotA valid annotation object.

◆ TextSearch() [5/5]

foxit::pdf::TextSearch::TextSearch ( const TextSearch other)

Constructor, with another text search object.

Parameters
[in]otherAnother text search object.

Member Function Documentation

◆ FindNext()

bool foxit::pdf::TextSearch::FindNext ( )

Search for next matched pattern.

Returns
true means the next match is found, while false means no next match can be found or any other error.

◆ FindPrev()

bool foxit::pdf::TextSearch::FindPrev ( )

Search for previous matched pattern.

Returns
true means the previous match is found, while false means no previous match can be found or any other error.

◆ GetMatchEndCharIndex()

int foxit::pdf::TextSearch::GetMatchEndCharIndex ( ) const

Get the index of the last character of current match pattern, based on current match page.

Returns
The index of the last character, in current match page, starting from 0. -1 means no matched sentence is found.

◆ GetMatchPageIndex()

int foxit::pdf::TextSearch::GetMatchPageIndex ( ) const

Get the page index, to which current match belongs.

This function can only be used for a text search in PDF document or in XFA document.

Returns
The index of the page, which contains the current match, starting from 0. -1 means not matched pattern has been found.

◆ GetMatchRects()

RectFArray foxit::pdf::TextSearch::GetMatchRects ( ) const

Get the rectangles of current match pattern.

Returns
An array of rectangles.

◆ GetMatchSentence()

WString foxit::pdf::TextSearch::GetMatchSentence ( )

Get the sentence that contains current match pattern.

Returns
The sentence content, which contains current match.

◆ GetMatchSentenceEndIndex()

int foxit::pdf::TextSearch::GetMatchSentenceEndIndex ( )

Get the index of the last character of current matched pattern, based on the matched sentence.

In a sentence, there may be more than 2 matched patterns. This function, along with function GetMatchSentenceStartIndex, can help to confirm which pattern in the sentence is just current matched pattern.

Returns
The index of the last character of current matched pattern, based on the match sentence, starting from 0. -1 means no matched sentence is found.

◆ GetMatchSentenceStartIndex()

int foxit::pdf::TextSearch::GetMatchSentenceStartIndex ( )

Get the index of the first character of current matched pattern, based on the matched sentence.

In a sentence, there may be more than 2 matched patterns. This function, along with function GetMatchSentenceEndIndex, can help to confirm which pattern in the sentence is just current matched pattern.

Returns
The index of the first character of current matched pattern, based on the matched sentence, starting from 0. -1 means no matched sentence is found.

◆ GetMatchStartCharIndex()

int foxit::pdf::TextSearch::GetMatchStartCharIndex ( ) const

Get the index of the first character of current match pattern, based on current match page.

Returns
The index of the first character, in current match page, starting from 0. -1 means no matched sentence is found.

◆ IsEmpty()

bool foxit::pdf::TextSearch::IsEmpty ( ) const

Check whether current object is empty or not.

When the current object is empty, that means current object is useless.

Returns
true means current object is empty, while false means not.

◆ operator !=()

bool foxit::pdf::TextSearch::operator != ( const TextSearch other) const

Not equal operator.

Parameters
[in]otherAnother text search object. This function will check if current object is not equal to this one.
Returns
true means not equal, while false means equal.

◆ operator=()

TextSearch& foxit::pdf::TextSearch::operator= ( const TextSearch other)

Assign operator.

Parameters
[in]otherAnother text search object, whose value would be assigned to current object.
Returns
Reference to current object itself.

◆ operator==()

bool foxit::pdf::TextSearch::operator== ( const TextSearch other) const

Equal operator.

Parameters
[in]otherAnother text search object. This function will check if current object is equal to this one.
Returns
true means equal, while false means not equal.

◆ SetEndPage()

bool foxit::pdf::TextSearch::SetEndPage ( int  page_index)

Set ending page index.

This function can only be used for a text search object which is constructed with PDFDoc object or addon::xfa::XFADoc object. For other case, this function will throw exception foxit::e_ErrUnsupported.
If this function is not called, default value count-1 will be used as the ending page index.

Parameters
[in]page_indexIndex of the page, from which the search ended. Valid range: from 0 to (count-1). count is returned by function PDFDoc::GetPageCount for PDF document or by function addon::xfa::XFADoc::GetPageCount for XFA document.
Returns
true means success, while false means failure.

◆ SetPattern()

bool foxit::pdf::TextSearch::SetPattern ( const wchar_t *  key_words)

Set keywords to search.

Parameters
[in]key_wordsThe text content to be searched. It should not be an empty string.
Returns
true means success, while false means failure.

◆ SetSearchFlags()

bool foxit::pdf::TextSearch::SetSearchFlags ( uint32  search_flags)

Set search flags.

If this function is not called, default value TextSearch::e_SearchNormal will be used.

Parameters
[in]search_flagsSearch flags. Please refer to values starting from TextSearch::e_SearchNormal and this can be one or combination of these values.
Returns
true means success, while false means failure.

◆ SetStartCharacter()

bool foxit::pdf::TextSearch::SetStartCharacter ( int  char_index)

Set starting character index, from where the search process is to be started.

This function can only be used for a text search object which is constructed with TextPage object or PDFDoc object. For other case, this function will throw exception foxit::e_ErrUnsupported.
If this function is not called for a newly constructed text serach object, default value will be used as the starting character index:

  • 0 will be used as the starting character index for first search started by functionTextSearch::FindNext.
  • (count-1) will be used as the starting character index for first search by function TextSearch::FindPrev.
Parameters
[in]char_indexStarting character index, from where the search process is to be started. Valid range: from 0 to (count-1). count means the count of characters in the starting page for search process.
Returns
true means success, while false means failure.

◆ SetStartPage()

bool foxit::pdf::TextSearch::SetStartPage ( int  page_index)

Set starting page index.

This function can only be used for a text search object which is constructed with PDFDoc object or addon::xfa::XFADoc object. For other case, this function will throw exception foxit::e_ErrUnsupported.
If this function is not called, default value 0 will be used as the starting page index.

Parameters
[in]page_indexIndex of the page, from which the search starts. Valid range: from 0 to (count-1). count is returned by function PDFDoc::GetPageCount for PDF document or by function addon::xfa::XFADoc::GetPageCount for XFA document.
Returns
true means success, while false means failure.