Документы Microsoft Word широко используются для создания и обмена текстовым контентом. Если вы работаете с документами Word в своих C# приложениях, вам может потребоваться извлечь текст из документа Word с использованием C# ASP.NET и извлечь текст, сохраняя форматирование. Например, возможно, вы захотите проанализировать текст, извлечь определенные разделы документа или объединить их в один документ. В этой статье мы изучим, как извлекать текст из документов Word на C# с использованием лучшей библиотеки C# для извлечения текста из документов Word.
- Библиотека для извлечения текста из документов Word
- Извлечение текста в документах Word
- Извлечь текст из документа Word
C# библиотека для извлечения текста из документов Word
Aspose.Words для .NET является богатой возможностями и простой в использовании библиотекой для работы с документами Word. Она предлагает широкий диапазон возможностей, включая извлечение текста из документов Word на .NET, создание, манипуляции и конвертацию документов. С помощью Aspose.Words для .NET вы можете управлять различными аспектами документов Word, что делает её ценным инструментом для разработчиков, ищущих эффективное извлечение текста из документов Word на C#.
Вы можете скачать DLL или установить библиотеку непосредственно из NuGet с помощью консоли диспетчера пакетов.
PM> Install-Package Aspose.Words
Извлечение текста из документов Word
Документ MS Word состоит из различных элементов, включая абзацы, таблицы, изображения и т.д. Поэтому требования к извлечению текста могут варьироваться в зависимости от сценария. Например, вам может потребоваться извлечь текст из отсканированного документа Word C# или извлечь текст из файла Word C# .NET. Каждый тип элемента в документе Word представлен в виде узла. Поэтому, чтобы обработать документ, вам необходимо взаимодействовать с узлами. Давайте начнем и посмотрим, как извлечь текст из документов Word в различных сценариях, обеспечивая обработку форматирования при извлечении текста C# эффективно.
Извлечь текст из документа Word DOC на C#
В этом разделе мы собираемся реализовать C# текстовый экстрактор для документов Word, а рабочий процесс извлечения текста будет следующим:
- Во-первых, мы определим узлы, которые хотим включить в процесс извлечения текста.
- Затем мы извлечем содержимое между указанными узлами (включая или исключая начальные и конечные узлы).
- Наконец, мы будем использовать клон извлеченных узлов, например, чтобы создать новый документ Word, состоящий из извлеченного содержимого.
Теперь давайте напишем метод, названный ExtractContent, в который мы передадим узлы и некоторые другие параметры для выполнения извлечения текста. Этот метод будет анализировать документ и клонировать узлы. Следующие параметры мы передадим этому методу:
- StartNode и EndNode в качестве начальных и конечных точек для извлечения содержимого соответственно. Это могут быть как блочные (Paragraph, Table) узлы, так и инлайн узлы (например, Run, FieldStart, BookmarkStart и т.д.).
- Чтобы передать поле, вы должны передать соответствующий объект FieldStart.
- Чтобы передать закладки, нужно передать узлы BookmarkStart и BookmarkEnd.
- Для комментариев следует использовать узлы CommentRangeStart и CommentRangeEnd.
- IsInclusive определяет, включены ли маркеры в извлечение или нет. Если эта опция установлена в false и тот же узел или последовательные узлы переданы, то будет возвращен пустой список.
Следующая полная реализация метода ExtractContent позволяет извлекать содержимое между переданными узлами, точно извлекая текст из защищенного документа Word C#.
Некоторые вспомогательные методы также требуются методу ExtractContent для выполнения операции извлечения текста, которые представлены ниже.
Теперь мы готовы использовать эти методы и извлечь текст из документа Word с использованием C#.
Извлечь текст между абзацами документа Word
Давайте посмотрим, как извлечь содержимое между двумя абзацами в документе DOCX Word. Следующие шаги выполняют эту операцию в C#.
- Сначала загрузите документ Word с использованием класса Document.
- Получите ссылку на начальный и конечный абзацы в два объекта с помощью метода Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
- Вызовите метод ExtractContent(startPara, endPara, true) для извлечения узлов в объект.
- Вызовите вспомогательный метод GenerateDocument(Document, extractedNodes) для создания документа, состоящего из извлеченного содержимого.
- Наконец, сохраните возвращаемый документ с помощью метода Document.Save(string).
Следующий образец кода показывает, как эффективно извлекать текст из больших файлов Word, извлекая текст между 7-м и 11-м абзацами в документе Word на C#.
Извлечь текст между различными типами узлов
Вы также можете извлекать содержимое между различными типами узлов. Для демонстрации давайте извлечем содержимое между абзацем и таблицей и сохраним его в новом документе Word. Следующие шаги выполняют эту операцию.
- Загрузите документ Word с использованием класса Document.
- Получите ссылку на начальные и конечные узлы в два объекта с помощью метода Document.FirstSection.Body.GetChild(NodeType, int, boolean).
- Вызовите метод ExtractContent(startPara, endPara, true) для извлечения узлов в объект.
- Вызовите вспомогательный метод GenerateDocument(Document, extractedNodes) для создания документа, состоящего из извлеченного содержимого.
- Сохраните возвращаемый документ с помощью метода Document.Save(string).
Следующий образец кода показывает, как извлечь текст между абзацем и таблицей на C#.
Извлечь текст между абзацами на основе стилей
Теперь давайте посмотрим, как извлечь содержимое между абзацами на основе стилей. Для демонстрации мы собираемся извлечь содержимое между первым “Заголовком 1” и первым “Заголовком 3” в документе Word. Следующие шаги демонстрируют, как это сделать на C#.
- Сначала загрузите документ Word с использованием класса Document.
- Затем извлеките абзацы в объект с помощью вспомогательного метода ParagraphsByStyleName(Document, “Heading 1”).
- Извлеките абзацы в другой объект с помощью вспомогательного метода ParagraphsByStyleName(Document, “Heading 3”).
- Вызовите метод ExtractContent(startPara, endPara, true) и передайте первые элементы в обоих массивах абзацев в качестве первых и вторых параметров.
- Вызовите вспомогательный метод GenerateDocument(Document, extractedNodes) для создания документа, состоящего из извлеченного содержимого.
- Наконец, сохраните возвращаемый документ с помощью метода Document.Save(string).
Следующий образец кода показывает, как извлечь содержимое между абзацами на основе стилей.
Узнайте больше об извлечении текста
Вы можете изучить другие сценарии .NET API для извлечения текста из документов Word с помощью этой документационной статьи.
Получите бесплатную библиотеку для извлечения текста из Word
Вы можете получить бесплатную временную лицензию для извлечения текста без ограничений оценки.
Заключение
Aspose.Words для .NET является универсальной библиотекой, которая упрощает процесс извлечения текста из Word на C# с сохранением форматирования. С ее обширными функциями и простым в использовании API вы можете эффективно работать с документами Word и автоматизировать различные сценарии обработки специальных символов во время извлечения текста Word на C#. Независимо от того, создаете ли вы приложения, которые нуждаются в обработке документов Word, или просто извлекаете текст, Aspose.Words для .NET является ценным инструментом для разработчиков.
Вы можете изучить другие функции Aspose.Words для .NET с помощью документации. Если у вас есть какие-либо вопросы, не стесняйтесь обращаться к нам через наш форум.
Смотрите также
Совет: Возможно, вам стоит проверить Aspose Конвертер PowerPoint в Word, так как он демонстрирует процесс конвертации популярной презентации в документ Word.