Extract text in Accurate mode

GroupDocs.Parser provides the functionality to extract text from documents.

The Accurate mode is default text extraction mode and it means that text quality wlll be the best possible.

You can extract the whole document text or only a document page.

To extract a text from the document in the Accurate mode, GetText and GetText(int) methods of Parser class are used:

TextReader GetText();
TextReader GetText(int pageIndex);

Methods return an instance of TextReader class with the extracted text. The first method extracts text from the whole document. The second method extracts text from the document page. To retrieve the total number of document pages GetDocumentInfo method is used (see below).

Extract text

Here are the steps to extract text from the document:

  • Instantiate Parser object for the initial document;
  • Call GetText method and obtain TextReader object;
  • Check if reader isn’t null (text extraction is supported for the document);
  • Read a text from reader.

The following example shows how to extract text from a document:

// Create an instance of Parser class
using(Parser parser = new Parser(filePath))
{
    // Extract a text into the reader
    using(TextReader reader = parser.GetText())
    {
        // Print a text from the document
        // If text extraction isn't supported, a reader is null
        Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
    }
}

Extract text from a document page

Here are the steps to extract text from a document page:

  • Instantiate Parser object for the initial document;
  • Call Features.Text property to check if text extraction is supported for the document;
  • Call GetText(int) method with the page index and obtain TextReader object;
  • Read a text from reader.

The following example shows how to extract a text from the document page:

// Create an instance of Parser class
using(Parser parser = new Parser(filePath))
{
    // Check if the document supports text extraction
    if(!parser.Features.Text)
    {
        Console.WriteLine("Document isn't supports text extraction.");
        return;   
	}

    // Get the document info
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    // Check if the document has pages
    if(documentInfo.PageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }
 
    // Iterate over pages
    for(int p = 0; p < documentInfo.PageCount; p++)
    {
        // Print a page number 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
 
        // Extract a text into the reader
        using(TextReader reader = parser.GetText(p))
        {
            // Print a text from the document
            // We ignore null-checking as we have checked text extraction feature support earlier
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}

More resources

GitHub examples

You may easily run the code above and see the feature in action in our GitHub examples:

Free online document parser App

Along with full featured .NET library we provide simple, but powerful free Apps.

You are welcome to parse documents and extract data from PDF, DOC, DOCX, PPT, PPTX, XLS, XLSX, Emails and more with our free online Free Online Document Parser App.