Extrahera text från docx med GroupDocs.Viewer för Java

Letar du efter att extrahera text från docx-filer programatiskt? Oavsett om du behöver hämta sidnummer, fånga varje textrad eller bygga sökbara index, kan detta manuellt vara tidskrävande och felbenäget. GroupDocs.Viewer for Java gör processen enkel genom att tillhandahålla högpresterande API:er som läser ett dokuments struktur och returnerar ren textdata.

I den här handledningen kommer du att lära dig hur du konfigurerar GroupDocs.Viewer, extraherar sidmetadata och hämtar varje textrad från en DOCX-fil. I slutet har du en färdig lösning som du kan integrera i någon Java‑baserad backend.

Document Analysis with GroupDocs.Viewer for Java

Snabba svar

  • Vad betyder “extrahera text från docx”? Det betyder att programatiskt läsa en DOCX-fil och hämta dess ren‑textinnehåll rad för rad.
  • Vilket bibliotek hanterar detta? GroupDocs.Viewer for Java tillhandahåller Viewer‑klassen och relaterade API:er.
  • Behöver jag en licens? En gratis provversion fungerar för utvärdering; en betald licens krävs för produktion.
  • Vilken Java‑version krävs? Vilken JDK 8 + som är kompatibel med Maven.
  • Kan jag bearbeta stora batcher? Ja—genom att återanvända Viewer‑instanser och hantera sidor i strömmar.

Vad är “extrahera text från docx”?

Att extrahera text från en DOCX-fil innebär att läsa dokumentets interna XML‑struktur och returnera den mänskligt läsbara texten utan formatering. Detta är användbart för indexering, sökning eller för att mata innehåll in i efterföljande analys‑pipelines.

Varför använda GroupDocs.Viewer för Java?

  • Noggrannhet: Hanterar komplexa layouter, tabeller och flerkolumnsdokument.
  • Hastighet: Optimerad renderingsmotor som fungerar snabbt även på stora filer.
  • Stöd för flera format: Samma API fungerar för PDF, PPTX, XLSX och fler, så du kan återanvända kod.
  • Inga externa beroenden: Ren Java, inga inhemska bibliotek krävs.

Förutsättningar

  • Java Development Kit (JDK) 8 eller nyare.
  • Maven installerat för beroendehantering.
  • En DOCX‑fil du vill analysera (placera den i en känd mapp).

Installera GroupDocs.Viewer för Java

Lägg till GroupDocs‑arkivet och beroendet i din 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>

Steg för att skaffa licens

Grundläggande initiering

  1. Importera de nödvändiga klasserna.
  2. Skapa en Viewer‑instans som pekar på din DOCX‑fil.
  3. Använd ViewInfoOptions.forPngView(true) för att begära sidnivåinformation (metadata och textrader).

Så extraherar du text från docx – Steg‑för‑steg‑guide

1. Extrahera sidmetadata

Sidmetadata, såsom sidnummer, är viktig när du behöver bygga navigationsstrukturer eller referera till specifika avsnitt.

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): Instruerar API:et att samla sidinformation medan PNG‑rendering förbereds.
  • viewInfo.getPages(): Returnerar en samling där varje Page‑objekt innehåller sitt nummer och annan metadata.

Proffstips: Avsluta Viewer‑instansen i ett try‑with‑resources‑block för att automatiskt frigöra inhemska resurser.

2. Extrahera textrader från sidor

Nu när du kan identifiera varje sida, låt oss hämta de faktiska textraderna.

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(): Returnerar en lista med Line‑objekt, där varje representerar en enskild textrad som den visas på sidan.
  • Den inre loopen skriver ut varje rad, separerad med tabbar för läsbarhet.

Vanliga problem & lösningar

SymptomLikely CauseFix
null sidnummerDokumentet laddades inte korrektVerifiera filvägen och säkerställ att filen finns.
Inga textrader returneradesFilformatet stöds inteKontrollera att DOCX‑versionen stöds; uppgradera GroupDocs vid behov.
OutOfMemoryError på stora filerViewer håller för många sidor i minnetBearbeta sidor i mindre batcher eller återanvänd samma Viewer‑instans.

Praktiska tillämpningar

  1. Sökengine‑indexering: Spara sidnummer tillsammans med extraherad text för att möjliggöra exakt utdragsåtervinning.
  2. Juridisk dokumentgranskning: Hämta varje rad för automatiserad klausuldetektering eller maskeringsarbetsflöden.
  3. Innehållsmigrering: Flytta äldre DOCX‑innehåll till ett CMS samtidigt som strukturen bevaras.
  4. Rapport‑instrumentpaneler: Sammanfatta nyckelsektioner genom att extrahera rubriker och punktlistor.

Prestandaöverväganden

  • Avsluta korrekt: Stäng alltid Viewer (använd try‑with‑resources).
  • Batch‑behandling: När du hanterar många dokument, återanvänd en enda Viewer‑instans per tråd för att minska overhead.
  • Renderingsalternativ: Om du bara behöver text kan du hoppa över PNG‑rendering genom att använda ViewInfoOptions.forTextView() (ej visat här) för att minska behandlingstiden.

Slutsats

Du vet nu hur du extraherar text från docx‑filer med GroupDocs.Viewer för Java, hämtar sidnummer och itererar genom varje textrad. Dessa byggstenar låter dig skapa kraftfulla dokument‑behandlingspipelines som är snabba, pålitliga och enkla att underhålla.

Nästa steg

  • Experimentera med andra format (PDF, PPTX) med samma API.
  • Kombinera extraherad text med en fulltextsökmotor som Elasticsearch.
  • Utforska stilalternativ för renderade bilder om du också behöver visuella förhandsvisningar.

Vanliga frågor

Q: Vilka filformat stöder GroupDocs.Viewer?
A: Det stöder ett brett sortiment, inklusive DOCX, PDF, XLSX, PPTX och många fler.

Q: Kan jag anpassa utdataformatet när jag extraherar rader?
A: Ja, genom att konfigurera ViewInfoOptions (t.ex. forTextView() för ren text).

Q: Finns det någon gräns för hur många sidor som kan bearbetas?
A: Det finns ingen hård gräns, men mycket stora dokument kan kräva batch‑behandling för att vara minnes‑effektiva.

Q: Hur hanterar jag undantag i GroupDocs.Viewer?
A: Omge din Viewer‑kod med try‑catch‑block och hantera ViewerException eller generisk IOException efter behov.

Q: Kan detta verktyg integreras med andra Java‑ramverk?
A: Absolut! Det fungerar sömlöst med Spring, Hibernate, Jakarta EE och mer.

Resurser


Senast uppdaterad: 2026-04-13
Testat med: GroupDocs.Viewer for Java 25.2
Författare: GroupDocs