Extract Text from MS Word Documents in C#

Dokumenty Microsoft Word są podstawowym narzędziem do tworzenia i udostępniania treści tekstowych. Jeśli rozwijasz aplikacje C# interagujące z tymi dokumentami, możesz potrzebować wyodrębnić z nich tekst. Może to być konieczne w celach takich jak analiza tekstu lub wyodrębnianie konkretnych sekcji dokumentu do skompilowania w nowym. W tym wpisie na blogu przyjrzymy się metodom wyodrębniania tekstu z dokumentów Word w C#.

Spis treści

Biblioteka C# do wyodrębniania tekstu

Aspose.Words for .NET to potężna i przyjazna dla użytkownika biblioteka zaprojektowana do pracy z dokumentami Word. Oferuje kompleksowy zestaw funkcji, w tym wyodrębnianie tekstu, tworzenie, manipulację i konwersję dokumentów. Dzięki Aspose.Words for .NET programiści mogą efektywnie zarządzać różnymi aspektami dokumentów Word, co czyni ją nieocenionym narzędziem w Twoich potrzebach deweloperskich.

Aby rozpocząć, pobierz bibliotekę lub zainstaluj ją bezpośrednio z NuGet używając następującego polecenia w konsoli menedżera pakietów:

PM> Install-Package Aspose.Words

Zrozumienie wyodrębniania tekstu w dokumentach Word

Dokument MS Word składa się z różnych elementów, takich jak akapity, tabele i obrazy. W związku z tym wymagania dotyczące wyodrębniania tekstu mogą różnić się w zależności od konkretnego przypadku użycia. Może być konieczne wyodrębnienie tekstu między akapitami, zakładkami, komentarzami i innymi.

Każdy element w dokumencie Word jest reprezentowany jako węzeł. Dlatego aby skutecznie przetwarzać dokument, będziesz musiał pracować z tymi węzłami. Zbadajmy, jak wyodrębnić tekst z dokumentów Word w różnych scenariuszach.

Krok po kroku: jak wyodrębnić tekst z dokumentu Word

W tej sekcji zaimplementujemy ekstraktor tekstu w C# dla dokumentów Word. Przepływ pracy dla wyodrębniania tekstu będzie obejmować następujące kroki:

  1. Zdefiniuj węzły do uwzględnienia w procesie wyodrębniania.
  2. Wyodrębnij zawartość między określonymi węzłami (w tym lub wykluczając węzły początkowe i końcowe).
  3. Użyj sklonowanych wyodrębnionych węzłów, aby stworzyć nowy dokument Word zawierający wyodrębnioną zawartość.

Stwórzmy metodę o nazwie ExtractContent, która przyjmie węzły i inne parametry do wykonania wyodrębniania tekstu. Ta metoda będzie analizować dokument i klonować węzły na podstawie następujących parametrów:

  • StartNode i EndNode: Te parametry definiują punkty początkowe i końcowe dla wyodrębniania zawartości. Mogą to być węzły blokowe (np. Paragraph, Table) lub węzły liniowe (np. Run, FieldStart, BookmarkStart).
    • Dla pól przekaż odpowiedni obiekt FieldStart.
    • Dla zakładek użyj węzłów BookmarkStart i BookmarkEnd.
    • Dla komentarzy zastosuj węzły CommentRangeStart i CommentRangeEnd.
  • IsInclusive: Ten parametr określa, czy znaczniki są uwzględnione w wyodrębnianiu. Jeśli ustawione na false i podane są te same lub sąsiednie węzły, zwrócona zostanie pusta lista.

Oto pełna implementacja metody ExtractContent do wyodrębniania zawartości między określonymi węzłami:

Dodatkowo, kilka metod pomocniczych jest wymaganych przez metodę ExtractContent, aby ułatwić operację wyodrębniania tekstu:

Teraz, gdy mamy nasze metody gotowe, możemy przystąpić do wyodrębniania tekstu z dokumentu Word.

Wyodrębnianie tekstu między akapitami dokumentu Word

Aby wyodrębnić zawartość między dwoma akapitami w dokumencie Word DOCX, wykonaj następujące kroki:

  1. Załaduj dokument Word używając klasy Document.
  2. Uzyskaj odniesienia do akapitów początkowego i końcowego używając metody Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  3. Wywołaj metodę ExtractContent(startPara, endPara, True), aby wyodrębnić węzły do obiektu.
  4. Użyj metody pomocniczej GenerateDocument(Document, extractedNodes), aby stworzyć dokument z wyodrębnioną zawartością.
  5. Zapisz nowy dokument używając metody Document.Save(string).

Oto przykładowy kod demonstrujący, jak wyodrębnić tekst między 7. a 11. akapitem w dokumencie Word:

Wyodrębnianie tekstu między różnymi typami węzłów

Możesz również wyodrębnić zawartość między różnymi typami węzłów. Na przykład, wyodrębnijmy zawartość między akapitem a tabelą i zapiszmy ją w nowym dokumencie Word. Kroki są następujące:

  1. Załaduj dokument Word używając klasy Document.
  2. Uzyskaj odniesienia do węzłów początkowego i końcowego używając metody Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  3. Wywołaj ExtractContent(startPara, endPara, True), aby wyodrębnić węzły do obiektu.
  4. Użyj metody pomocniczej GenerateDocument(Document, extractedNodes), aby stworzyć dokument z wyodrębnioną zawartością.
  5. Zapisz nowy dokument używając Document.Save(string).

Oto przykładowy kod do wyodrębniania tekstu między akapitem a tabelą w C#:

Wyodrębnianie tekstu na podstawie stylów

Aby wyodrębnić zawartość między akapitami na podstawie stylów, wykonaj następujące kroki. W tej demonstracji wyodrębnimy zawartość między pierwszym “Nagłówkiem 1” a pierwszym “Nagłówkiem 3” w dokumencie Word:

  1. Załaduj dokument Word używając klasy Document.
  2. Wyodrębnij akapity do obiektu używając metody pomocniczej ParagraphsByStyleName(Document, “Heading 1”).
  3. Wyodrębnij akapity do innego obiektu używając ParagraphsByStyleName(Document, “Heading 3”).
  4. Wywołaj ExtractContent(startPara, endPara, True) z pierwszymi elementami z obu tablic akapitów.
  5. Użyj metody pomocniczej GenerateDocument(Document, extractedNodes), aby stworzyć dokument z wyodrębnioną zawartością.
  6. Zapisz nowy dokument używając Document.Save(string).

Oto przykładowy kod do wyodrębniania zawartości między akapitami na podstawie stylów:

Przeczytaj więcej o wyodrębnianiu tekstu

Zbadaj dodatkowe scenariusze wyodrębniania tekstu z dokumentów Word w tym artykule dokumentacyjnym.

Uzyskaj darmową bibliotekę do wyodrębniania tekstu z Worda

Możesz uzyskać darmową tymczasową licencję, aby wyodrębniać tekst bez ograniczeń oceny.

Podsumowanie

Aspose.Words for .NET to wszechstronna biblioteka, która upraszcza proces wyodrębniania tekstu z dokumentów Word w C#. Dzięki rozbudowanym funkcjom i przyjaznemu interfejsowi API możesz efektywnie pracować z dokumentami Word i automatyzować różne scenariusze wyodrębniania tekstu. Niezależnie od tego, czy rozwijasz aplikacje wymagające przetwarzania dokumentów Word, czy po prostu wyodrębniasz tekst, Aspose.Words for .NET jest niezbędnym narzędziem dla programistów.

Aby odkryć więcej funkcji Aspose.Words for .NET, zapoznaj się z dokumentacją. Jeśli masz jakiekolwiek pytania, nie wahaj się skontaktować z nami za pośrednictwem naszego forum.

Zobacz także

Wskazówka: Możesz również sprawdzić konwerter Aspose PowerPoint do Word, który demonstruje popularny proces konwersji prezentacji na dokumenty Word.