Did you find this guide helpful?
Some test text!
Cpp / Guides / Text search
Platform
Documentation
To search for text in a PDF using regular expression and then apply a link annotation on the highlighted result.
PDFDoc doc(filename);
TextSearch txt_search;
TextSearch::Mode mode = TextSearch::e_whole_word | TextSearch::e_page_stop;
UString pattern("");
//use regular expression to find credit card number
mode |= TextSearch::e_reg_expression | TextSearch::e_highlight;
txt_search.SetMode(mode);
pattern = "\\d{4}-\\d{4}-\\d{4}-\\d{4}"; //or "(\\d{4}-){3}\\d{4}"
txt_search.SetPattern(pattern);
//call Begin() method to initialize the text search.
txt_search.Begin( doc, pattern, mode );
SearchResult result = txt_search.Run();
if ( result )
{
//add a link annotation based on the location of the found instance
Highlights hlts = result.GetHighlights();
hlts.Begin(doc);
while ( hlts.HasNext() )
{
Page cur_page= doc.GetPage(hlts.GetCurrentPageNumber());
const double *quads;
int quad_count = hlts.GetCurrentQuads(quads);
for ( int i = 0; i < quad_count; ++i )
{
//assume each quad is an axis-aligned rectangle
const double *q = &quads[8*i];
double x1 = min(min(min(q[0], q[2]), q[4]), q[6]);
double x2 = max(max(max(q[0], q[2]), q[4]), q[6]);
double y1 = min(min(min(q[1], q[3]), q[5]), q[7]);
double y2 = max(max(max(q[1], q[3]), q[5]), q[7]);
Annots::Link hyper_link = Annots::Link::Create(doc, Rect(x1, y1, x2, y2), Action::CreateURI(doc, "http://www.pdftron.com"));
cur_page.AnnotPushBack(hyper_link);
}
hlts.Next();
}
}
Search PDF files for text
Full code sample which shows how to use TextSearch to search text on PDF pages using regular expressions.
Get the answers you need: Support