private void groupChunksbyLine()
 {
     MyTextExtractionStrategy.ExtendedTextChunk textChunk1 = null;
     MyTextExtractionStrategy.LineInfo          textInfo   = null;
     foreach (MyTextExtractionStrategy.ExtendedTextChunk textChunk2 in this.m_DocChunks)
     {
         if (textChunk1 == null)
         {
             textInfo = new MyTextExtractionStrategy.LineInfo(textChunk2);
             this.m_LinesTextInfo.Add(textInfo);
         }
         else if (textChunk2.sameLine(textChunk1))
         {
             textInfo.appendText(textChunk2);
         }
         else
         {
             textInfo = new MyTextExtractionStrategy.LineInfo(textChunk2);
             this.m_LinesTextInfo.Add(textInfo);
         }
         textChunk1 = textChunk2;
     }
 }
 public LineInfo(MyTextExtractionStrategy.ExtendedTextChunk initialTextChunk)
 {
     this.m_Text          = initialTextChunk.m_text;
     this.m_LineCharsList = initialTextChunk.m_ChunkChars;
 }
 public void appendText(MyTextExtractionStrategy.ExtendedTextChunk additionalTextChunk)
 {
     m_LineCharsList.AddRange(additionalTextChunk.m_ChunkChars);
     this.m_Text += additionalTextChunk.m_text;
 }
 public bool sameLine(MyTextExtractionStrategy.ExtendedTextChunk textChunkToCompare)
 {
     return(this.m_orientationMagnitude == textChunkToCompare.m_orientationMagnitude && this.m_distPerpendicular == textChunkToCompare.m_distPerpendicular);
 }