Wydobywanie tekstu 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ć wydobyć tekst z dokumentu Word za pomocą C# ASP.NET oraz wydobywać tekst zachowując formatowanie. Na przykład, możesz chcieć analizować tekst, wydobywać konkretne sekcje dokumentu lub łączyć je w jeden dokument. W tym blogu zbadamy, jak wydobywać tekst z dokumentów Word w C# za pomocą najlepszej biblioteki C# do wydobywania tekstu z dokumentów Word.

Biblioteka C# do wydobywania tekstu z dokumentów Word

Aspose.Words for .NET jest bogatą w funkcje i łatwą w użyciu biblioteką do pracy z dokumentami Word. Oferuje szeroki zakres możliwości, w tym wydobywanie tekstu z dokumentów Word w .NET, tworzenie, manipulację i konwersję dokumentów. Dzięki Aspose.Words for .NET możesz obsługiwać różne aspekty dokumentów Word, co czyni ją cennym narzędziem dla programistów poszukujących efektywnego wydobywania 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

Wydobywanie tekstu z dokumentów Word

Dokument MS Word składa się z różnych elementów, w tym akapitów, tabel, obrazów itp. Dlatego wymagania dotyczące wydobywania tekstu mogą różnić się w zależności od scenariusza. Na przykład, możesz potrzebować wydobyć tekst z zeskanowanego dokumentu Word w C# lub wydobyć tekst z pliku Word w C# .NET. Każdy typ elementu w dokumencie Word jest reprezentowany jako węzeł. Dlatego, aby przetworzyć dokument, musisz wchodzić w interakcje z węzłami. Zaczynajmy i zobaczmy, jak wydobywać tekst z dokumentów Word w różnych scenariuszach, zapewniając skuteczne zarządzanie formatowaniem podczas wydobywania tekstu w C#.

Wydobycie tekstu z dokumentu Word w C#

W tej sekcji zaimplementujemy C# extractor tekstu dla dokumentów Word, a proces wydobywania tekstu będzie wyglądał następująco:

  • Najpierw zdefiniujemy węzły, które chcemy uwzględnić w procesie wydobywania tekstu.
  • Następnie wydobędziemy treść pomiędzy określonymi węzłami (w tym lub wykluczając węzły początkowe i końcowe).
  • Na koniec użyjemy klona wydobytych węzłów, np. aby stworzyć nowy dokument Word zawierający wydobyte treści.

Napiszmy teraz metodę o nazwie ExtractContent, do której przekażemy węzły i inne parametry do wykonania wydobycia tekstu. Metoda ta będzie analizować dokument i klonować węzły. Poniżej przedstawiamy parametry, które przekażemy do tej metody:

  1. StartNode i EndNode jako punkty początkowy i końcowy dla wydobycia treści. Mogą to być zarówno węzły poziomu bloku (Paragraph, Table), jak i poziomu inline (np. Run, FieldStart, BookmarkStart, itp.).
    1. Aby przekazać pole, należy przekazać odpowiadający obiekt FieldStart.
    2. Aby przekazać zakładki, powinny zostać przekazane węzły BookmarkStart i BookmarkEnd.
    3. Dla komentarzy powinny być używane węzły CommentRangeStart i CommentRangeEnd.
  2. IsInclusive definiuje, czy znaczniki są włączone w wydobycie, czy nie. Jeśli ten wybór jest ustawiony na fałsz, a ten sam węzeł lub kolejne węzły są przekazywane, wówczas zostanie zwrócona pusta lista.

Poniżej znajduje się pełna implementacja metody ExtractContent, która wydobywa treści pomiędzy przekazanymi węzłami, dokładnie wydobywając tekst z chronionego dokumentu Word w C#.

Niektóre metody pomocnicze są również wymagane przez metodę ExtractContent do wykonania operacji wydobywania tekstu, które opisano poniżej.

Teraz jesteśmy gotowi do wykorzystania tych metod i wydobycia tekstu z dokumentu Word za pomocą C#.

Wydobywanie tekstu pomiędzy akapitami dokumentu Word

Zobaczmy, jak wydobywać treść pomiędzy dwoma akapitami w dokumencie DOCX Word. Poniższe 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 wydobyć węzły do obiektu.
  • Wywołaj metodę pomocniczą GenerateDocument(Document, extractedNodes), aby stworzyć dokument zawierający wydobyte treści.
  • Na koniec zapisz zwrócony dokument za pomocą metody Document.Save(string).

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

Wydobywanie tekstu pomiędzy różnymi rodzajami węzłów

Możesz również wydobywać treści pomiędzy różnymi rodzajami węzłów. Dla demonstracji, wydobądźmy treść pomiędzy akapitem a tabelą i zapiszmy ją w nowym dokumencie Word. Poniższe 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 wydobyć węzły do obiektu.
  • Wywołaj metodę pomocniczą GenerateDocument(Document, extractedNodes), aby stworzyć dokument zawierający wydobyte treści.
  • Zapisz zwrócony dokument za pomocą metody Document.Save(string).

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

Wydobywanie tekstu pomiędzy akapitami na podstawie stylów

Zobaczmy teraz, jak wydobywać treść pomiędzy akapitami na podstawie stylów. Dla demonstracji, wydobędziemy treść pomiędzy pierwszym “Nagłówkiem 1” a pierwszym “Nagłówkiem 3” w dokumencie Word. Poniższe kroki pokazują, jak to osiągnąć w C#.

  • Najpierw załaduj dokument Word za pomocą klasy Document.
  • Następnie wydobądź akapity do obiektu za pomocą metody pomocniczej ParagraphsByStyleName(Document, “Heading 1”).
  • Wydobądź 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 stworzyć dokument zawierający wydobyte treści.
  • Na koniec zapisz zwrócony dokument za pomocą metody Document.Save(string).

Poniższy przykład kodu pokazuje, jak wydobywać treść pomiędzy akapitami na podstawie stylów.

Przeczytaj więcej o wydobywaniu tekstu

Możesz odkryć inne scenariusze API .NET do wydobywania tekstu z dokumentów Word, korzystając z tego artykułu dokumentacyjnego.

Uzyskaj darmową bibliotekę do wydobywania tekstu z Worda

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

Podsumowanie

Aspose.Words for .NET to wszechstronna biblioteka, która upraszcza proces wydobywania tekstu z Worda w C# z zachowaniem formatowania. Dzięki swoim rozbudowanym funkcjom i łatwemu w użyciu API możesz efektywnie pracować z dokumentami Word i automatyzować różne scenariusze obsługi znaków specjalnych podczas wydobywania tekstu z dokumentów Word w C#. Niezależnie od tego, czy budujesz aplikacje, które muszą przetwarzać dokumenty Word, czy po prostu wydobywasz tekst, Aspose.Words for .NET jest cennym narzędziem dla programistów.

Możesz odkryć inne funkcje Aspose.Words for .NET korzystając z dokumentacji. W przypadku jakichkolwiek pytań skontaktuj się z nami na naszym forum.

Zobacz także

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