Извлечь текст из DOCX

Большая часть данных представлена в виде визуального текста в документах, изображениях и в Интернете, поэтому извлечение текстовых данных иногда является самой необходимой вещью. Вам может понадобиться извлечь текст или изображения из документов Word или PDF. Как разработчик C#, вы можете легко программно извлекать текст из документов. В этой статье вы узнаете, как извлечь текст из документов DOC или DOCX с помощью C#.

В этой статье обсуждаются/рассматриваются следующие темы:

C# API для извлечения текста

Я буду использовать API GroupDocs.Parser for .NET для извлечения текста из документов DOCX. Он позволяет извлекать текст, метаданные и изображения из документов поддерживаемых форматов файлов, таких как Word, PDF, Excel и Powerpoint. Он также поддерживает извлечение необработанного, форматированного и структурированного текста, а также метаданных из файлов поддерживаемых форматов.

Вы можете либо скачать DLL API, либо установить его с помощью NuGet.

Install-Package GroupDocs.Parser

Извлечь текст из DOCX с помощью C#

Вы можете легко проанализировать любой документ и извлечь текст, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса Parser.
  • Укажите путь к файлу
  • Вызовите метод GetText класса Parser для извлечения текста.
  • Получить результаты в объекте класса TextReader
  • Показать результаты, вызвав метод ReadToEnd класса TextReader

В следующем примере кода показано, как извлечь текст из файла DOCX с помощью C#.

// Создайте экземпляр класса Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// Извлечь текст в ридер
using (TextReader reader = parser.GetText())
{
    // Распечатать текст из документа
    // Если извлечение текста не поддерживается, средство чтения недействительно.
    Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
}
Извлечь текст из DOCX с помощью C#

Извлечь текст из DOCX с помощью C#

Класс Parser — это основной класс, обеспечивающий функциональность синтаксического анализа и извлечение текста и изображений. Я указал путь к входному файлу в конструкторе этого класса.

Метод GetText() класса Parser извлекает текст из указанного документа.

Получить форматированный текст из DOCX с помощью С#

Вы можете легко анализировать документ Word и извлекать текст без потери форматирования стиля, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса Parser.
  • Укажите путь к файлу
  • Определите FormattedTextOptions
  • Установите FormattedTextMode в HTML
  • Вызовите метод GetFormattedText класса Parser для извлечения текста.
  • Получить результаты в объекте класса TextReader
  • Показать результаты, вызвав метод ReadToEnd класса TextReader

В следующем примере кода показано, как извлечь форматированный текст из файла DOCX с помощью C#.

// Создайте экземпляр класса Parser
Parser parser = new Parser(@"C:\Files\sample.docx");

// Извлечь форматированный текст в ридер
using (TextReader reader = parser.GetFormattedText(new FormattedTextOptions(FormattedTextMode.Html)))
{
    // Печать форматированного текста из документа
    // Если извлечение форматированного текста не поддерживается, средство чтения недействительно.
    Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported" : reader.ReadToEnd());
}
Извлечь форматированный текст из DOCX с помощью C#

Извлечь форматированный текст из DOCX с помощью C#

Класс FormattedTextOptions предоставляет параметры, используемые для извлечения форматированного текста, такие как извлечение Mode. Я установил режим извлечения в HTML, который извлекает текст документа как HTML .

Метод GetFormattedText() класса Parser извлекает форматированный текст из указанного документа.

Извлечение форматированного текста со страниц с помощью C#

Вы можете легко анализировать документ Word и извлекать форматированный текст с определенной страницы документа, выполнив простые шаги, указанные ниже:

  • Создайте экземпляр класса Parser.
  • Укажите путь к файлу
  • Проверьте, верно ли значение FormattedText.
  • Вызовите GetDocumentInfo, чтобы получить количество страниц
  • Проверьте, не равен ли PageCount нулю
  • Определите FormattedTextOptions
  • Установите FormattedTextMode в HTML
  • Вызовите метод GetFormattedText для каждого индекса страницы, чтобы извлечь текст.
  • Получить результаты в объекте класса TextReader
  • Показать результаты, вызвав метод ReadToEnd класса TextReader

В следующем примере кода показано, как извлечь форматированный текст со страниц одну за другой с помощью C#.

// Создайте экземпляр класса Parser
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
    // Проверьте, поддерживает ли документ извлечение форматированного текста.
    if (!parser.Features.FormattedText)
    {
        Console.WriteLine("Document isn't supports formatted text extraction.");
        return;
    }

    // Получить информацию о документе
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    // Проверить, есть ли в документе страницы
    if (documentInfo.PageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }

    // Перебирать страницы
    for (int p = 0; p < documentInfo.PageCount; p++)
    {
        // Распечатать номер страницы 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
        // Извлечь форматированный текст в ридер
        using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
        {
            // Печать форматированного текста из документа
            // Мы игнорируем проверку на нуль, так как мы проверили поддержку функции извлечения форматированного текста ранее.
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
Извлечение форматированного текста со страниц с помощью C#

Извлечение форматированного текста со страниц с помощью C#

Класс Parser предоставляет свойство Features, представляющее класс Features. Его можно использовать для проверки того, поддерживается ли функция для документа. Подробнее о поддерживаемых функциях можно прочитать в разделе «Получить поддерживаемые функции».

Получить бесплатную лицензию

Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.

Вывод

В этой статье вы узнали, как извлекать текст из документов Word с помощью C#. Вы можете узнать больше о GroupDocs.Parser для .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также