Extract text in Raw mode

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

The Raw mode is the fastest text extraction mode and it means that performance wlll be the best possible.

Raw mode usually retrieves text in worse quality than Accurate mode, but in some cases performance is more important than quality.

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

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

TextReader GetText(TextOptions options);
TextReader GetText(int pageIndex, TextOptions options);

Methods return an instance of TextReader class with an 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).

Warning
Instead of the accurate mode, RawPageCount property of IDocumentInfo class is used to avoid extra calculations.

Extract text

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

  • Instantiate Parser object for the initial document;
  • Instantiate TextOptions object with true parameter;
  • Call GetText(TextOptions) method with TextOptionsparameter 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 a raw text from a document:

// Create an instance of Parser class
using(Parser parser = new Parser(filePath))
{
    // Extract a raw text into the reader
    using(TextReader reader = parser.GetText(new TextOptions(true)))
    {
        // 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 page

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

The following example shows how to extract a raw text from a 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 == null || documentInfo.RawPageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }
    // Iterate over pages
    for (int p = 0; p < documentInfo.RawPageCount; p++)
    {
        // Print a page number 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.RawPageCount));
        // Extract a text into the reader
        using (TextReader reader = parser.GetText(p, new TextOptions(true)))
        {
            // 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.