Витяг тексту з документів MS Word у C#

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

C# Бібліотека для витягу тексту з документів Word

Aspose.Words for .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, до якого ми передамо вузли та деякі інші параметри для виконання витягу тексту. Цей метод аналізуватиме документ і клонуватиме вузли. Наступні є параметрами, які ми передамо цьому методу:

  1. StartNode та EndNode як початкові та кінцеві точки для витягу вмісту відповідно. Це можуть бути як блокові ( Paragraph, Table), так і вбудовані (наприклад, Run, FieldStart, BookmarkStart тощо) вузли.
    1. Щоб передати поле, ви повинні передати відповідний об’єкт FieldStart.
    2. Щоб передати книжки, потрібно передати вузли BookmarkStart та BookmarkEnd.
    3. Для коментарів потрібно використовувати вузли CommentRangeStart та CommentRangeEnd.
  2. IsInclusive визначає, чи включені маркери у витяг чи ні. Якщо ця опція встановлена на false і той самий вузол або послідовні вузли передані, то буде повернуто порожній список.

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

Деякі допоміжні методи також потрібні методу ExtractContent, щоб виконати операцію витягу тексту, які наведені нижче.

Тепер ми готові використовувати ці методи та витягти текст з документа Word за допомогою C#.

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

Давайте подивимося, як витягнути вміст між двома параграфами в документі Word DOCX. Наступні кроки виконують цю операцію в 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.