Wyodrębnij tekst z dokumentów MS Word w C#

Dokumenty Microsoft Word są powszechnie używane do tworzenia i udostępniania treści tekstowych. Jeśli pracujesz z dokumentami Word w swoich aplikacjach C#, możesz potrzebować wyodrębnić tekst z dokumentu Word przy użyciu C# ASP.NET oraz wyodrębnić tekst zachowując formatowanie. Na przykład możesz chcieć analizować tekst, wyodrębnić określone sekcje dokumentu lub połączyć je w jeden dokument. W tym blogu zbadamy, jak wyodrębnić tekst z dokumentów Word w C# przy użyciu najlepszej biblioteki C# do wyodrębniania tekstu z dokumentów Word.

C# Biblioteka do wyodrębniania tekstu z dokumentów Word

Aspose.Words dla .NET to bogata w funkcje i łatwa w użyciu biblioteka do pracy z dokumentami Word. Oferuje szeroki zakres możliwości, w tym wyodrębnianie tekstu z dokumentów Word w .NET, tworzenie dokumentów, manipulację nimi oraz konwersję. Dzięki Aspose.Words dla .NET możesz obsługiwać różne aspekty dokumentów Word, co czyni ją cennym narzędziem dla programistów szukających wydajnego wyodrębniania tekstu z dokumentów Word w C#.

Możesz pobrać DLL lub zainstalować bibliotekę bezpośrednio z NuGet za pomocą konsoli menedżera pakietów.

PM> Install-Package Aspose.Words

Wyodrębnianie tekstu z dokumentów Word

Dokument MS Word składa się z różnych elementów, w tym akapitów, tabel, obrazków itp. Dlatego wymagania dotyczące wyodrębniania tekstu mogą się różnić w zależności od scenariusza. Na przykład możesz potrzebować wyodrębnić tekst z zeskanowanego dokumentu Word w C# lub wyodrębnić tekst z pliku Word w C# .NET. Każdy typ elementu w dokumencie Word jest reprezentowany jako węzeł. W związku z tym, aby przetworzyć dokument, będziesz musiał wchodzić w interakcje z węzłami. Zaczynajmy i zobaczmy, jak wyodrębnić tekst z dokumentów Word w różnych scenariuszach, zapewniając jednocześnie skuteczne przetwarzanie formatowania tekstu podczas jego wyodrębniania w C#.

Wyodrębnij tekst z dokumentu Word w C#

W tej sekcji zaimplementujemy wyodrębniacz tekstu w C# dla dokumentów Word, a proces wyodrębniania tekstu będzie przebiegał według następującego schematu:

  • Najpierw zdefiniujemy węzły, które chcemy uwzględnić w procesie wyodrębniania tekstu.
  • Następnie wyodrębniemy zawartość między określonymi węzłami (w tym uwzględniając lub wykluczając węzły początkowe i końcowe).
  • Na koniec użyjemy klonu wyodrębnionych węzłów, aby utworzyć nowy dokument Word składający się z wyodrębnionej zawartości.

Napiszmy teraz metodę o nazwie ExtractContent, do której przekażemy węzły oraz inne parametry, aby przeprowadzić proces wyodrębniania tekstu. Metoda ta będzie analizować dokument i klonować węzły. Poniżej przedstawiono parametry, które przekażemy do tej metody:

  1. StartNode i EndNode jako punkty początkowy i końcowy dla wyodrębnienia zawartości, odpowiednio. Mogą to być węzły poziomu bloku (Akapit, Tabela) lub poziomu inline (np. Uruchom, FieldStart, BookmarkStart itp.).
    1. Aby przekazać pole, należy przekazać odpowiedni obiekt FieldStart.
    2. Aby przekazać zakładki, należy przekazać węzły BookmarkStart i BookmarkEnd.
    3. W przypadku komentarzy powinny być używane węzły CommentRangeStart i CommentRangeEnd.
  2. IsInclusive określa, czy znaczniki są uwzględniane w wyodrębnieniu, czy nie. Jeśli ta opcja jest ustawiona na false i przekażesz ten sam węzeł lub kolejne węzły, wówczas zostanie zwrócona pusta lista.

Poniżej znajduje się pełna implementacja metody ExtractContent, która wyodrębnia zawartość między przekazanymi węzłami, precyzyjnie wyodrębniając tekst z chronionego dokumentu Word w C#.

Niektóre metody pomocnicze są również wymagane przez metodę ExtractContent, aby zrealizować operację wyodrębniania tekstu, które są podane poniżej.

Teraz jesteśmy gotowi, aby skorzystać z tych metod i wyodrębnić tekst z dokumentu Word przy użyciu C#.

Wyodrębnij tekst między akapitami dokumentu Word

Zobaczmy, jak wyodrębnić zawartość między dwoma akapitami w dokumencie DOCX Word. Następujące kroki wykonują tę operację w C#.

  • Najpierw załaduj dokument Word za pomocą klasy Document.
  • Uzyskaj odniesienie do akapitów początkowego i końcowego w dwóch obiektach za pomocą metody Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Wywołaj metodę ExtractContent(startPara, endPara, true), aby wyodrębnić węzły do obiektu.
  • Wywołaj metodę pomocniczą GenerateDocument(Document, extractedNodes), aby utworzyć dokument składający się z wyodrębnionej zawartości.
  • Na koniec zapisz zwrócony dokument za pomocą metody Document.Save(string).

Poniższy przykład kodu pokazuje, jak efektywnie wyodrębnić tekst z dużych plików Word, wyodrębniając tekst między 7. a 11. akapitem w dokumencie Word w C#.

Wyodrębnij tekst między różnymi typami węzłów

Możesz również wyodrębnić zawartość między różnymi typami węzłów. Dla demonstracji, wyodrębnijmy zawartość pomiędzy akapitem a tabelą i zapiszmy ją w nowym dokumencie Word. Następujące kroki wykonują tę operację.

  • Załaduj dokument Word za pomocą klasy Document.
  • Uzyskaj odniesienie do węzłów początkowego i końcowego w dwóch obiektach za pomocą metody Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Wywołaj metodę ExtractContent(startPara, endPara, true), aby wyodrębnić węzły do obiektu.
  • Wywołaj metodę pomocniczą GenerateDocument(Document, extractedNodes), aby utworzyć dokument składający się z wyodrębnionej zawartości.
  • Zapisz zwrócony dokument za pomocą metody Document.Save(string).

Poniższy przykład kodu pokazuje, jak wyodrębnić tekst pomiędzy akapitem a tabelą w C#.

Wyodrębnij tekst między akapitami na podstawie stylów

Sprawdźmy teraz, jak wyodrębnić zawartość między akapitami na podstawie stylów. Dla demonstrowania, wyodrębniemy zawartość między pierwszym “Nagłówek 1” a pierwszym “Nagłówek 3” w dokumencie Word. Następujące kroki demonstrują, jak osiągnąć to w C#.

  • Najpierw załaduj dokument Word za pomocą klasy Document.
  • Następnie wyodrębnij akapity do obiektu za pomocą metody pomocniczej ParagraphsByStyleName(Document, “Heading 1”).
  • Wyodrębnij akapity do innego obiektu za pomocą metody pomocniczej ParagraphsByStyleName(Document, “Heading 3”).
  • Wywołaj metodę ExtractContent(startPara, endPara, true) i przekaż pierwsze elementy w obu tablicach akapitów jako pierwsze i drugie parametry.
  • Wywołaj metodę pomocniczą GenerateDocument(Document, extractedNodes), aby utworzyć dokument składający się z wyodrębnionej zawartości.
  • Na koniec zapisz zwrócony dokument za pomocą metody Document.Save(string).

Poniższy przykład kodu pokazuje, jak wyodrębnić zawartość między akapitami na podstawie stylów.

Dowiedz się więcej o wyodrębnianiu tekstu

Możesz zbadać inne scenariusze API .NET do wyodrębniania tekstu z dokumentów Word korzystając z tego artykułu dokumentacyjnego.

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

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

Podsumowanie

Aspose.Words dla .NET to wszechstronna biblioteka, która upraszcza proces wyodrębniania tekstu z Word w C# z zachowaniem formatowania. Dzięki szerokiemu zakresowi funkcji i łatwemu w użyciu API możesz efektywnie pracować z dokumentami Word i automatyzować różnorodne scenariusze obsługi znaków specjalnych podczas wyodrębniania tekstu z Word w C#. Bez względu na to, czy budujesz aplikacje, które muszą przetwarzać dokumenty Word, czy po prostu wyodrębniasz tekst, Aspose.Words dla .NET to cenne narzędzie dla programistów.

Możesz odkryć inne cechy Aspose.Words dla .NET korzystając z dokumentacji. W razie jakichkolwiek pytań, nie wahaj się skontaktować z nami za pośrednictwem naszego forum.

Zobacz także

Wskazówka: Możesz chcieć sprawdzić konwerter Aspose PowerPoint do Word, ponieważ demonstruje popularny proces konwersji prezentacji do dokumentu Word.