Estrai testo da documenti Word usando Java

In alcuni casi, potrebbe essere necessario estrarre del testo dai documenti di Word per vari scopi. Come sviluppatore Java, puoi facilmente estrarre il testo dai file DOC o DOCX a livello di codice. In questo articolo imparerai come estrarre testo da documenti Word usando Java.

I seguenti argomenti sono discussi/trattati in questo articolo:

API Java per estrarre testo da documenti Word

Per estrarre il testo dai file DOC o DOCX, utilizzeremo l’API GroupDocs.Parser for Java. Consente di estrarre testo, metadati e immagini dai formati di file più diffusi di Word, PDF, Excel e PowerPoint. Supporta anche l’estrazione di testo grezzo, formattato e strutturato dai file di formati supportati.

Puoi scaricare il JAR dell’API o semplicemente aggiungere la seguente configurazione pom.xml nella tua applicazione Java basata su Maven per provare gli esempi di codice indicati di seguito.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>21.2</version> 
</dependency>

Estrai testo da documenti Word usando Java

Puoi analizzare qualsiasi documento Word ed estrarre il testo seguendo i semplici passaggi indicati di seguito:

  • Innanzitutto, carica il file DOCX utilizzando la classe Parser.
  • Quindi, chiama il metodo Parser.getText() per estrarre il testo dal documento caricato.
  • Ottieni i risultati del metodo Parser.getText() nell’oggetto classe TextReader.
  • Infine, chiama il metodo TextReader.readToEnd() per leggere tutti i caratteri dalla posizione corrente alla fine del lettore di testo e restituirli come una stringa.

L’esempio di codice seguente mostra come estrarre il testo da un file DOCX utilizzando Java.

// Crea un'istanza della classe Parser
Parser parser = new Parser("C:\\Files\\sample.docx");

// Estrarre un testo grezzo nel lettore
try (TextReader reader = parser.getText()) {
    // Stampa un testo dal documento
    // Se l'estrazione del testo non è supportata, un lettore è null
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Estrai testo da documenti Word usando Java

Estrai testo da documenti Word usando Java

Estrai testo da pagine specifiche di un documento Word utilizzando Java

Puoi analizzare un documento Word ed estrarre il testo da una pagina specifica seguendo i semplici passaggi indicati di seguito:

L’esempio di codice seguente mostra come estrarre il testo dalle pagine una per una utilizzando Java.

// Crea un'istanza della classe Parser
Parser parser = new Parser("C:\\Files\\sample.docx");

// Verifica se il documento supporta l'estrazione del testo
if (!parser.getFeatures().isText()) {
    System.out.println("The document doesn't support text extraction.");
    return;
}

// Ottieni le informazioni sul documento
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Controlla se il documento ha pagine
if (documentInfo.getPageCount() == 0) {
    System.out.println("The document has zero pages.");
    return;
}

// Iterare sulle pagine
for (int p = 0; p < documentInfo.getPageCount(); p++) {
    // Stampa un numero di pagina
    System.out.println(String.format("Page number: %d/%d", p + 1, documentInfo.getPageCount()));
    // Estrarre un testo nel lettore
    try (TextReader reader = parser.getText(p)) {
        // Stampa un testo dal documento
        // Ignoriamo il controllo null poiché abbiamo verificato in precedenza il supporto della funzione di estrazione del testo
        System.out.println(reader.readToEnd());
    }
}
Estrai testo da pagine specifiche di un documento utilizzando Java

Estrai testo da pagine specifiche di un documento utilizzando Java

Ottieni Evidenzia da documenti Word usando Java

Un’evidenziazione è una parte del testo che viene solitamente utilizzata per spiegare il contesto del testo trovato nella funzionalità di ricerca. Puoi estrarre un’evidenziazione da un documento seguendo i semplici passaggi indicati di seguito:

L’esempio di codice seguente mostra come estrarre un’evidenziazione da un documento utilizzando Java.

// Crea un'istanza della classe Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Estrai un punto culminante:
    HighlightItem hl = parser.getHighlight(0, true, new HighlightOptions(8));
    // Verifica se l'estrazione delle evidenziazioni è supportata
    if (hl == null) {
        System.out.println("Highlight extraction isn't supported");
        return;
    }
    // Stampa un'evidenziazione estratta
    System.out.println(String.format("At %d: %s", hl.getPosition(), hl.getText()));
}
At 0: Overview

Estrai testo formattato da DOCX usando Java

Puoi analizzare documenti Word ed estrarre testo senza perdere la formattazione dello stile seguendo i semplici passaggi indicati di seguito:

L’esempio di codice seguente mostra come estrarre il testo formattato da un file DOCX utilizzando Java.

// Crea un'istanza della classe Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Estrarre un testo formattato nel lettore
    try (TextReader reader = parser.getFormattedText(new FormattedTextOptions(FormattedTextMode.Html))) {
        // Stampa un testo formattato dal documento
        // Se l'estrazione di testo formattato non è supportata, un lettore è null
        System.out.println(reader == null ? "Formatted text extraction isn't suppported" : reader.readToEnd());
    }
}
Estrai testo formattato da DOCX usando Java

Estrai testo formattato da DOCX usando Java

Estrai il testo dal sommario usando Java

Puoi estrarre il testo dal documento dal sommario seguendo i semplici passaggi indicati di seguito:

  • Innanzitutto, carica il file DOCX utilizzando la classe Parser.
  • Quindi, chiama il metodo Parser.getToc() per estrarre un sommario come raccolta di oggetti di classe TocItem. Il TocItem rappresenta l’elemento utilizzato nella funzionalità di estrazione del sommario.
  • Ora controlla se la raccolta non è nulla.
  • Quindi, scorrere la raccolta di TocItem e chiamare il metodo TocItem.extractText() per estrarre il testo dal documento a cui fa riferimento l’oggetto TocItem.
  • Ottieni risultati nell’oggetto classe TextReader.
  • Infine, chiama il metodo TextReader.readToEnd() per leggere tutto il testo.

L’esempio di codice seguente mostra come estrarre il testo dal sommario dai documenti di Word usando Java.

// Crea un'istanza della classe Parser
try (Parser parser = new Parser("C:\\Files\\sampleTOC.docx")) {
    // Ottieni il sommario
    Iterable<TocItem> tocItems = parser.getToc();
    // Verificare se l'estrazione toc è supportata
    if (tocItems == null) {
        System.out.println("Table of contents extraction isn't supported");
    }
    else
    {
        // Iterare sugli elementi
        for (TocItem tocItem : tocItems) {
            // Stampa il testo del capitolo
            try (TextReader reader = tocItem.extractText()) {
                System.out.println("----");
                System.out.println(reader.readToEnd());
            }
        }
    }
}
Estrai il testo dal sommario usando Java

Estrai il testo dal sommario usando Java

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo hai imparato come estrarre testo da documenti Word usando Java. Inoltre, hai visto come estrarre il testo formattato da un file DOCX a livello di codice. Questo articolo spiega anche come estrarre il testo dal sommario ed estrarre un’evidenziazione da un documento. Inoltre, puoi saperne di più sull’API GroupDocs.Parser per Java utilizzando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche