Group a range of text fragments into a set of lines.




IList<TextGroup> Group(List<TextFragment> fragments)
[Visual Basic]
Function Group(fragments As List<TextFragment>) As IList<TextGroup>



Name Description
fragments The fragments to be grouped.
Return Returns a list of groups defining the words.




Group a range of text fragments into a set of lines.

Calling Select will return a list of TextFragments corresponding to the section of text you are interested in. However each TextFragment may only make up a small portion of a word. Calling this function allows you to group connected fragments into continuous sections with a common rectangular area.

Strictly speaking this grouping does not always correspond to lines. For example two fragments on the same line, separated by a large distance, will not be considered contiguous. However for most purposes the two broadly correspond.




Here we highlight a set of words in a source document by drawing a rectangle around each one.


string theSrc = Server.MapPath("mypics/Acrobat.pdf"); string theDst = Server.MapPath("HighlightedText.pdf"); string searchString = "Acrobat"; using (Doc doc = new Doc()) {   doc.Read(theSrc);   TextOperation op = new TextOperation(doc);   op.PageContents.AddPages();   string text = op.GetText();   int pos = 0;   while (true) {     pos = text.IndexOf(searchString, pos, StringComparison.CurrentCultureIgnoreCase);     if (pos < 0)       break;     IList<TextFragment> theSelection = op.Select(pos, searchString.Length);     IList<TextGroup> theGroups = op.Group(theSelection);     foreach (TextGroup theGroup in theGroups) {       doc.Rect.String = theGroup.Rect.String;       doc.FrameRect();     }     pos += searchString.Length;   }   doc.Save(theDst); }