Extract Text from MS Word Documents in C#

Документи Microsoft Word є стаблом для створення та обміну текстовим контентом. Якщо ви розробляєте C# додатки, які взаємодіють з цими документами, ви можете знайти себе потребуючи екстрактування тексту з них. Це може бути для таких цілей, як аналіз тексту або витягування конкретних розділів документа, щоб скласти в новий.

Таблиця контенту

C# Бібліотека для тексту Екстракції

Aspose.Words для .NET Це потужна і зручна для користувача бібліотека, розроблена для роботи з Word-документами. вона забезпечує всеосяжний набір функцій, включаючи видобуток тексту, створення документів, маніпуляції та конвертації. з Aspose.Words для .NET, розробники можуть ефективно керувати різними аспектами текстових документів Word, роблячи його безцінним інструментом для ваших потреб розвитку.

Щоб почати, Завантажити Бібліотеку або встановити його безпосередньо з NuGet Використовуйте наступну команду в консолі менеджера пакетів:

PM> Install-Package Aspose.Words

Поняття тексту в Word-документах

Документ MS Word складається з різних елементів, таких як абзаци, таблиці та зображення. Таким чином, вимоги до тексту екстракції можуть відрізнятися залежно від конкретного випадку використання. Вам може знадобитися екстракція тексту між абзацами, книжками, коментарями і багато іншого.

Кожен елемент у документі Word представлений як вузол. тому, щоб ефективно обробляти документ, вам доведеться працювати з цими вузолями. Давайте розглянемо, як витягти текст з документів Word в різних сценаріях.

Крок за кроком Посібник для вилучення тексту з документу Word

У цьому розділі ми будемо реалізовувати екстрактор тексту C# для Word-документів. робочий потік для екстракції тексту включатиме наступні кроки:

  • Визначте вузли, які повинні бути включені в процес екстракції.
  • Витяг вмісту між зазначеними вузлами (включаючи або виключаючи початкові та кінцеві вузли).
  • Використовуйте клоновані витягнуті вузли, щоб створити новий документ Word, що містить витягнутий вміст.

Давайте створимо метод під назвою ExtractContent, який прийме вузли та інші параметри для виконання текстової екстракції.Цей метод розрізає документ і клонує вузли за наступними параметрами:

  • StartNode і EndNode: ці визначають початкові та кінцеві пункти для видобутку контенту. вони можуть бути блоковим рівнем (наприклад, Параграф, Таблиця) або низьким рівнем вузлів (наприклад, Run, FieldStart, BookmarkStart).- Для полів перейдіть до відповідного об’єкта FieldStart.

  • Для книжкових знаків використовуйте BookmarkStart і BookmarkEnd вузли.

  • Для коментарів використовуйте CommentRangeStart і CommentRangeEnd.

  • IsInclusive: Цей параметр визначає, чи включені в екстракцію маркери. якщо встановлено на фальсифікацію і надаються ті ж або послідовні вузли, повернеться порожній список.

Ось повна реалізація методу ExtractContent для екстракції контенту між зазначеними вузлами:

Крім того, деякі допоміжні методи вимагаються методом ExtractContent для полегшення роботи з видобутку тексту:

Тепер, коли ми маємо наші методи готові, ми можемо продовжувати витягувати текст з Word-документу.

Витяг тексту між параграфами слова {#Витяг тексту між параграфами}

Щоб витягти вміст між двома параграфами в документі Word DOCX, виконайте наступні кроки:

  • Завантажити документ Слово за допомогою класу Документ.
  • Знайдіть посилання на початкові та кінцеві пункти за допомогою методу Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Зателефонуйте до методу ExtractContent(startPara, endPara, True), щоб витягти вузли в об’єкт.
  • Використовуйте метод GenerateDocument(Document, extractedNodes) для створення документа з витягнутим вмістом.
  • Зберегти новий документ за допомогою методу Document.Save(string).

Ось зразка коду, що показує, як витягти текст між параграфами 7 і 11 в документі Word:

Витяг тексту між різними типами нод

Ви також можете витягти вміст між різними видами вузлів. Наприклад, давайте витягнемо вміст між параграфом і таблицею і збережемо його в новий документ Word.

  • Завантажити документ Слово за допомогою класу Документ.
  • Знайдіть посилання на початкові та кінцеві вузли за допомогою методу Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Зателефонуйте ExtractContent(startPara, endPara, True) для екстракції вузлів в об’єкт.
  • Використовуйте метод GenerateDocument(Document, extractedNodes) для створення документа з витягнутим вмістом.
  • Зберегти новий документ за допомогою Document.Save(string).

Ось шаблон коду для витягу тексту між параграфом і таблицею в C#:

Витяг тексту на основі стилів {#Витяг тексту між параграфами на основі стилів}

Для того, щоб витягнути вміст між параграфами на основі стилів, слід дотримуватися цих кроків. Для цієї демонстрації ми витягнемо вміст між першим “Заголовок 1” і першим “Заголовок 3” у документі слова:

  • Завантажити документ Слово за допомогою класу Документ.
  • Витяг параграфу в об’єкт за допомогою методу допомоги ParagraphsByStyleName(Document, “Heading 1”).
  • Витяг параграфу в інший об’єкт за допомогою ParagraphsByStyleName(Документ, “Назва”).
  • Зателефонуйте ExtractContent(startPara, endPara, True) з першими елементами з обох параграфах.
  • Використовуйте метод GenerateDocument(Document, extractedNodes) для створення документа з витягнутим вмістом.
  • Зберегти новий документ за допомогою Document.Save(string).

Ось шаблон коду для вилучення контенту між параграфами на основі стилів:

Читати далі про Екстракція тексту

Вивчайте додаткові сценарії для екстракції тексту з Word-документів через Ця документальна стаття.

Отримайте безкоштовну бібліотеку текстових екстракторів Word

Ви можете отримати A Безкоштовна тимчасова ліцензія Використання тексту без обмежень оцінки.

Заключення

Aspose.Words для .NET - це різноманітна бібліотека, яка ускладнює процес екстракції тексту з Word-документів в C#. Завдяки своїм широким функціям і зручним для користувача API, ви можете ефективно працювати з Word-документами і автоматизувати різні сценарії екстракції тексту. Незалежно від того, чи розробляєте ви програми, які вимагають обробки Word-документів або просто екстрактують текст, Aspose.Words для .NET є важливим інструментом для розробників.

Щоб дізнатися більше функцій Aspose.Words для .NET, перевірте ДокументаціяЯкщо у вас є будь-які запитання, будьте вільними, щоб дістатися через нашу Форум.

Дивіться також

Тіп: Можливо, ви хочете перевірити Aspose PowerPoint для слова Конвертер, який демонструє популярний процес конвертації презентацій у Word-документи.

More in this category