Estrai testo da docx usando GroupDocs.Viewer per Java

Stai cercando di estrarre testo da docx file in modo programmatico? Che tu abbia bisogno di recuperare i numeri di pagina, catturare ogni riga di testo o creare indici ricercabili, farlo manualmente può richiedere molto tempo e essere soggetto a errori. GroupDocs.Viewer for Java semplifica il processo fornendo API ad alte prestazioni che leggono la struttura del documento e restituiscono dati di testo puliti.

In questo tutorial imparerai come configurare GroupDocs.Viewer, estrarre i metadati delle pagine e recuperare ogni riga di testo da un file DOCX. Alla fine, avrai una soluzione pronta all’uso che potrai integrare in qualsiasi backend basato su Java.

Analisi del documento con GroupDocs.Viewer per Java

Risposte rapide

  • Cosa significa “estrarre testo da docx”? Significa leggere programmaticamente un file DOCX e recuperare il suo contenuto in plain‑text riga per riga.
  • Quale libreria gestisce questo? GroupDocs.Viewer for Java fornisce la classe Viewer e le relative API.
  • Ho bisogno di una licenza? Una prova gratuita è sufficiente per la valutazione; è necessaria una licenza a pagamento per la produzione.
  • Quale versione di Java è richiesta? Qualsiasi JDK 8 + compatibile con Maven.
  • Posso elaborare grandi lotti? Sì—riutilizzando le istanze Viewer e gestendo le pagine in stream.

Cos’è “estrarre testo da docx”?

Estrarre testo da un file DOCX significa leggere la struttura XML interna del documento e restituire il testo leggibile dall’uomo senza formattazione. Questo è utile per l’indicizzazione, la ricerca o per alimentare contenuti in pipeline di analisi successive.

Perché usare GroupDocs.Viewer per Java?

  • Precisione: Gestisce layout complessi, tabelle e documenti a più colonne.
  • Velocità: Motore di rendering ottimizzato che funziona rapidamente anche su file di grandi dimensioni.
  • Supporto multi‑formato: La stessa API funziona per PDF, PPTX, XLSX e altri, così puoi riutilizzare il codice.
  • Nessuna dipendenza esterna: Pure Java, non richiede librerie native.

Prerequisiti

  • Java Development Kit (JDK) 8 o versioni successive.
  • Maven installato per la gestione delle dipendenze.
  • Un file DOCX che desideri analizzare (posizionalo in una cartella nota).

Configurazione di GroupDocs.Viewer per Java

Aggiungi il repository GroupDocs e la dipendenza al tuo 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>

Passaggi per l’acquisizione della licenza

Inizializzazione di base

  1. Importa le classi necessarie.
  2. Crea un’istanza Viewer che punti al tuo file DOCX.
  3. Usa ViewInfoOptions.forPngView(true) per richiedere informazioni a livello di pagina (metadati e righe di testo).

Come estrarre testo da docx – Guida passo‑passo

1. Estrarre i metadati della pagina

I metadati della pagina, come il numero di pagina, sono essenziali quando è necessario costruire strutture di navigazione o fare riferimento a sezioni specifiche.

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): Istruisce l’API a raccogliere le informazioni della pagina durante la preparazione del rendering PNG.
  • viewInfo.getPages(): Restituisce una collezione in cui ogni oggetto Page contiene il suo numero e altri metadati.

Suggerimento: Disporre del Viewer all’interno di un blocco try‑with‑resources per liberare automaticamente le risorse native.

2. Estrarre le righe di testo dalle pagine

Ora che puoi identificare ogni pagina, estraiamo le effettive righe di testo.

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(): Restituisce una lista di oggetti Line, ognuno dei quali rappresenta una singola riga di testo così come appare sulla pagina.
  • Il ciclo interno stampa ogni riga, separata da tabulazioni per una migliore leggibilità.

Problemi comuni e soluzioni

SintomoCausa probabileSoluzione
null page numbersDocumento non caricato correttamenteVerifica il percorso del file e assicurati che il file esista.
No text lines returnedFormato file non supportatoVerifica che la versione DOCX sia supportata; aggiorna GroupDocs se necessario.
OutOfMemoryError su file di grandi dimensioniViewer mantiene troppe pagine in memoriaElabora le pagine in batch più piccoli o riutilizza la stessa istanza Viewer.

Applicazioni pratiche

  1. Indicizzazione per motori di ricerca: Memorizza i numeri di pagina insieme al testo estratto per consentire il recupero preciso di snippet.
  2. Revisione di documenti legali: Estrarre ogni riga per il rilevamento automatico di clausole o flussi di lavoro di redazione.
  3. Migrazione di contenuti: Sposta contenuti DOCX legacy in un CMS mantenendo la struttura.
  4. Dashboard di reporting: Riassumi le sezioni chiave estraendo intestazioni e punti elenco.

Considerazioni sulle prestazioni

  • Disporre correttamente: Chiudi sempre il Viewer (usa try‑with‑resources).
  • Elaborazione batch: Quando gestisci molti documenti, riutilizza una singola istanza Viewer per thread per ridurre l’overhead.
  • Opzioni di rendering: Se ti serve solo il testo, puoi saltare il rendering PNG usando ViewInfoOptions.forTextView() (non mostrato qui) per ridurre i tempi di elaborazione.

Conclusione

Ora sai come estrarre testo da docx file usando GroupDocs.Viewer per Java, recuperare i numeri di pagina e iterare su ogni riga di testo. Questi blocchi costitutivi ti permettono di creare pipeline di elaborazione documenti potenti, veloci, affidabili e facili da mantenere.

Prossimi passi

  • Sperimenta con altri formati (PDF, PPTX) usando la stessa API.
  • Combina il testo estratto con un motore di ricerca full‑text come Elasticsearch.
  • Esplora le opzioni di stile per le immagini renderizzate se hai bisogno anche di anteprime visive.

Domande frequenti

Q: Quali formati di file supporta GroupDocs.Viewer?
A: Supporta un’ampia gamma, inclusi DOCX, PDF, XLSX, PPTX e molti altri.

Q: Posso personalizzare il formato di output durante l’estrazione delle righe?
A: Sì, configurando ViewInfoOptions (ad esempio forTextView() per testo puro).

Q: Esiste un limite al numero di pagine che possono essere elaborate?
A: Non c’è un limite rigido, ma documenti molto grandi potrebbero richiedere l’elaborazione batch per mantenere l’efficienza della memoria.

Q: Come gestisco le eccezioni in GroupDocs.Viewer?
A: Avvolgi il tuo codice Viewer in blocchi try‑catch e gestisci ViewerException o IOException generiche secondo necessità.

Q: Questo strumento può integrarsi con altri framework Java?
A: Assolutamente! Funziona senza problemi con Spring, Hibernate, Jakarta EE e altri.

Risorse


Ultimo aggiornamento: 2026-04-13
Testato con: GroupDocs.Viewer for Java 25.2
Autore: GroupDocs