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.

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ę
Vieweroraz 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
Vieweri 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
- Darmowa wersja próbna: Pobierz darmową wersję próbną ze strony pobierania GroupDocs.
- Licencja tymczasowa: Uzyskaj tymczasową licencję do rozszerzonego testowania poprzez stronę licencji tymczasowej.
- Zakup: Aby uzyskać pełny dostęp i wsparcie, rozważ zakup licencji przez portal zakupowy GroupDocs.
Podstawowa inicjalizacja
- Zaimportuj wymagane klasy.
- Utwórz instancję
Viewerwskazującą na Twój plik DOCX. - 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 obiektPagezawiera 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ówLine, 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
| Objaw | Prawdopodobna przyczyna | Rozwiązanie |
|---|---|---|
null numery stron | Dokument nie został poprawnie załadowany | Sprawdź ścieżkę do pliku i upewnij się, że plik istnieje. |
| Brak zwróconych linii tekstu | Nieobsługiwany format pliku | Sprawdź, czy wersja DOCX jest obsługiwana; w razie potrzeby zaktualizuj GroupDocs. |
OutOfMemoryError przy dużych plikach | Viewer przechowuje zbyt wiele stron w pamięci | Przetwarzaj strony w mniejszych partiach lub ponownie użyj tej samej instancji Viewer. |
Praktyczne zastosowania
- Indeksowanie w wyszukiwarkach: Przechowuj numery stron wraz z wyodrębnionym tekstem, aby umożliwić precyzyjne pobieranie fragmentów.
- Przegląd dokumentów prawnych: Pobierz każdą linię w celu automatycznego wykrywania klauzul lub procesów redakcji.
- Migracja treści: Przenieś starszą zawartość DOCX do systemu CMS, zachowując strukturę.
- 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
Viewerna 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
- Dokumentacja GroupDocs
- Referencja API
- Pobierz GroupDocs.Viewer
- Kup licencję
- Pobierz wersję próbną
- Żądanie licencji tymczasowej
Last Updated: 2026-04-13
Tested With: GroupDocs.Viewer for Java 25.2
Author: GroupDocs