Wyodrębnianie tekstu z docx przy użyciu GroupDocs.Viewer dla Javy

Czy szukasz sposobu na wyodrębnienie tekstu z docx plików programowo? Niezależnie od tego, czy potrzebujesz pobrać numery stron, przechwycić każdą linię tekstu, czy zbudować indeksy przeszukiwalne, ręczne wykonywanie tego może być czasochłonne i podatne na błędy. GroupDocs.Viewer for Java upraszcza proces, udostępniając wysokowydajne API, które odczytuje strukturę dokumentu i zwraca czyste dane tekstowe.

W tym samouczku dowiesz się, jak skonfigurować GroupDocs.Viewer, wyodrębnić metadane stron i pobrać każdą linię tekstu z pliku DOCX. Po zakończeniu będziesz mieć gotowe rozwiązanie, które możesz zintegrować z dowolnym backendem opartym na Javie.

Analiza dokumentu przy użyciu GroupDocs.Viewer dla Javy

Szybkie odpowiedzi

  • Co oznacza „wyodrębnianie tekstu z docx”? Oznacza to programowe odczytywanie pliku DOCX i pobieranie jego treści w postaci zwykłego tekstu linia po linii.
  • Która biblioteka to obsługuje? GroupDocs.Viewer for Java udostępnia klasę Viewer oraz powiązane API.
  • Czy potrzebna jest licencja? Darmowa wersja próbna działa w celach oceny; płatna licencja jest wymagana w środowisku produkcyjnym.
  • Jakiej wersji Javy wymaga? Dowolny JDK 8 + kompatybilny z Maven.
  • Czy mogę przetwarzać duże partie? Tak — poprzez ponowne użycie instancji Viewer i obsługę stron w strumieniach.

Co to jest „wyodrębnianie tekstu z docx”?

Wyodrębnianie tekstu z pliku DOCX oznacza odczytanie wewnętrznej struktury XML dokumentu i zwrócenie tekstu czytelnego dla człowieka bez formatowania. Jest to przydatne do indeksowania, wyszukiwania lub przekazywania treści do kolejnych potoków analitycznych.

Dlaczego warto używać GroupDocs.Viewer dla Javy?

  • Dokładność: Obsługuje złożone układy, tabele i dokumenty wielokolumnowe.
  • Szybkość: Zoptymalizowany silnik renderujący, który działa szybko nawet przy dużych plikach.
  • Obsługa wielu formatów: To samo API działa dla PDF, PPTX, XLSX i innych, dzięki czemu możesz ponownie używać kodu.
  • Brak zewnętrznych zależności: Czysta Java, nie wymaga bibliotek natywnych.

Wymagania wstępne

  • Java Development Kit (JDK) 8 lub nowszy.
  • Maven zainstalowany do zarządzania zależnościami.
  • Plik DOCX, który chcesz analizować (umieść go w znanym folderze).

Konfiguracja GroupDocs.Viewer dla Javy

Dodaj repozytorium GroupDocs i zależność do swojego pom.xml:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/viewer/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-viewer</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

Kroki uzyskania licencji

Podstawowa inicjalizacja

  1. Zaimportuj wymagane klasy.
  2. Utwórz instancję Viewer wskazującą na Twój plik DOCX.
  3. Użyj ViewInfoOptions.forPngView(true), aby żądać informacji na poziomie stron (metadane i linie tekstu).

Jak wyodrębnić tekst z docx – Przewodnik krok po kroku

1. Wyodrębnianie metadanych stron

Metadane stron, takie jak numer strony, są niezbędne, gdy trzeba zbudować struktury nawigacyjne lub odwoływać się do konkretnych sekcji.

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
    ViewInfoOptions viewInfoOptions = ViewInfoOptions.forPngView(true);
    ViewInfo viewInfo = viewer.getViewInfo(viewInfoOptions);
    for (Page page : viewInfo.getPages()) {
        int pageNumber = page.getNumber();
        System.out.println("Page: " + pageNumber); // Outputs the page number
    }
}
  • ViewInfoOptions.forPngView(true): Instruuje API do zbierania informacji o stronach podczas przygotowywania renderowania PNG.
  • viewInfo.getPages(): Zwraca kolekcję, w której każdy obiekt Page zawiera swój numer i inne metadane.

Wskazówka: Usuń (zwolnij) Viewer wewnątrz bloku try‑with‑resources, aby automatycznie zwolnić zasoby natywne.

2. Wyodrębnianie linii tekstu ze stron

Teraz, gdy możesz zidentyfikować każdą stronę, pobierzmy rzeczywiste linie tekstu.

try (Viewer viewer = new Viewer("YOUR_DOCUMENT_DIRECTORY/SAMPLE_DOCX")) {
    ViewInfoOptions viewInfoOptions = ViewInfoOptions.forPngView(true);
    ViewInfo viewInfo = viewer.getViewInfo(viewInfoOptions);
    for (Page page : viewInfo.getPages()) {
        System.out.println("Page: " + page.getNumber());
        System.out.println("Text lines:");
        
        for (Line line : page.getLines()) {
            String lineText = line.getValue();
            System.out.print(lineText + "\t");
        }
    }
}
  • page.getLines(): Zwraca listę obiektów Line, z których każdy reprezentuje pojedynczą linię tekstu taką, jaka pojawia się na stronie.
  • Wewnętrzna pętla wypisuje każdą linię, oddzieloną tabulacjami dla czytelności.

Typowe problemy i rozwiązania

ObjawPrawdopodobna przyczynaRozwiązanie
null numery stronDokument nie został poprawnie załadowanySprawdź ścieżkę do pliku i upewnij się, że plik istnieje.
Brak zwróconych linii tekstuNieobsługiwany format plikuSprawdź, czy wersja DOCX jest obsługiwana; w razie potrzeby zaktualizuj GroupDocs.
OutOfMemoryError przy dużych plikachViewer przechowuje zbyt wiele stron w pamięciPrzetwarzaj strony w mniejszych partiach lub ponownie użyj tej samej instancji Viewer.

Praktyczne zastosowania

  1. Indeksowanie w wyszukiwarkach: Przechowuj numery stron wraz z wyodrębnionym tekstem, aby umożliwić precyzyjne pobieranie fragmentów.
  2. Przegląd dokumentów prawnych: Pobierz każdą linię w celu automatycznego wykrywania klauzul lub procesów redakcji.
  3. Migracja treści: Przenieś starszą zawartość DOCX do systemu CMS, zachowując strukturę.
  4. Pulpity raportowe: Podsumuj kluczowe sekcje, wyodrębniając nagłówki i wypunktowania.

Wskazówki dotyczące wydajności

  • Poprawne zwalnianie: Zawsze zamykaj Viewer (używaj try‑with‑resources).
  • Przetwarzanie wsadowe: Przy obsłudze wielu dokumentów, ponownie używaj jednej instancji Viewer na wątek, aby zmniejszyć narzut.
  • Opcje renderowania: Jeśli potrzebujesz tylko tekstu, możesz pominąć renderowanie PNG, używając ViewInfoOptions.forTextView() (nie pokazano tutaj), aby skrócić czas przetwarzania.

Zakończenie

Teraz wiesz, jak wyodrębnić tekst z docx przy użyciu GroupDocs.Viewer dla Javy, pobrać numery stron i iterować po każdej linii tekstu. Te elementy konstrukcyjne pozwalają tworzyć potężne potoki przetwarzania dokumentów, które są szybkie, niezawodne i łatwe w utrzymaniu.

Kolejne kroki

  • Eksperymentuj z innymi formatami (PDF, PPTX) przy użyciu tego samego API.
  • Połącz wyodrębniony tekst z silnikiem wyszukiwania pełnotekstowego, takim jak Elasticsearch.
  • Zbadaj opcje stylizacji renderowanych obrazów, jeśli potrzebujesz także podglądów wizualnych.

Najczęściej zadawane pytania

Q: Jakie formaty plików obsługuje GroupDocs.Viewer?
A: Obsługuje szeroką gamę, w tym DOCX, PDF, XLSX, PPTX i wiele innych.

Q: Czy mogę dostosować format wyjściowy przy wyodrębnianiu linii?
A: Tak, poprzez konfigurację ViewInfoOptions (np. forTextView() dla czystego tekstu).

Q: Czy istnieje limit liczby stron, które można przetworzyć?
A: Nie ma sztywnego limitu, ale bardzo duże dokumenty mogą wymagać przetwarzania wsadowego, aby pozostać efektywnymi pamięciowo.

Q: Jak obsługiwać wyjątki w GroupDocs.Viewer?
A: Otocz kod Viewer blokami try‑catch i obsługuj ViewerException lub ogólne IOException w razie potrzeby.

Q: Czy to narzędzie może integrować się z innymi frameworkami Javy?
A: Zdecydowanie! Działa płynnie ze Spring, Hibernate, Jakarta EE i innymi.

Zasoby


Last Updated: 2026-04-13
Tested With: GroupDocs.Viewer for Java 25.2
Author: GroupDocs