
Большая часть данных представлена в виде визуального текста в документах, изображениях и в Интернете, поэтому извлечение текстовых данных иногда является самой необходимой вещью. Вам может понадобиться извлечь текст или изображения из документов Word или PDF. Как разработчик C#, вы можете легко программно извлекать текст из документов. В этой статье вы узнаете, как извлечь текст из документов DOC или DOCX с помощью C#.
В этой статье обсуждаются/рассматриваются следующие темы:
- C# API для извлечения текста
- Извлечь текст из DOCX с помощью C#
- Получить форматированный текст из 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#
Класс 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#
Класс 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#
Класс Parser предоставляет свойство Features, представляющее класс Features. Его можно использовать для проверки того, поддерживается ли функция для документа. Подробнее о поддерживаемых функциях можно прочитать в разделе «Получить поддерживаемые функции».
Получить бесплатную лицензию
Вы можете попробовать API без ограничений по ознакомительной версии, запросив бесплатную временную лицензию.
Вывод
В этой статье вы узнали, как извлекать текст из документов Word с помощью C#. Вы можете узнать больше о GroupDocs.Parser для .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.