Extrair texto de documentos do Word usando Java

Em certos casos, pode ser necessário extrair texto de seus documentos do Word para diversos fins. Como desenvolvedor Java, você pode facilmente extrair texto de arquivos DOC ou DOCX programaticamente. Neste artigo, você aprenderá como extrair texto de documentos do Word usando Java.

Os seguintes tópicos são discutidos/abordados neste artigo:

API Java para extrair texto de documentos do Word

Para extrair texto dos arquivos DOC ou DOCX, usaremos a API GroupDocs.Parser for Java. Ele permite extrair texto, metadados e imagens de formatos de arquivo populares de Word, PDF, Excel e PowerPoint. Ele também suporta a extração de texto bruto, formatado e estruturado dos arquivos de formatos suportados.

Você pode baixar o JAR da API ou simplesmente adicionar a seguinte configuração pom.xml em seu aplicativo Java baseado em Maven para experimentar os exemplos de código mencionados abaixo.

<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>

Extrair texto de documentos do Word usando Java

Você pode analisar qualquer documento do Word e extrair texto seguindo as etapas simples mencionadas abaixo:

  • Primeiramente, carregue o arquivo DOCX usando a classe Parser.
  • Em seguida, chame o método Parser.getText() para extrair o texto do documento carregado.
  • Obtenha resultados do método Parser.getText() no objeto de classe TextReader.
  • Por fim, chame o método TextReader.readToEnd() para ler todos os caracteres da posição atual até o final do leitor de texto e devolvê-los como uma string.

O exemplo de código a seguir mostra como extrair texto de um arquivo DOCX usando Java.

// Crie uma instância da classe Parser
Parser parser = new Parser("C:\\Files\\sample.docx");

// Extraia um texto bruto para o leitor
try (TextReader reader = parser.getText()) {
    // Imprimir um texto do documento
    // Se a extração de texto não for compatível, um leitor será nulo
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Extrair texto de documentos do Word usando Java

Extrair texto de documentos do Word usando Java

Extrair texto de páginas específicas de um documento do Word usando Java

Você pode analisar um documento do Word e extrair texto de uma página específica seguindo as etapas simples mencionadas abaixo:

O exemplo de código a seguir mostra como extrair texto de páginas um por um usando Java.

// Crie uma instância da classe Parser
Parser parser = new Parser("C:\\Files\\sample.docx");

// Verifique se o documento suporta extração de texto
if (!parser.getFeatures().isText()) {
    System.out.println("The document doesn't support text extraction.");
    return;
}

// Obtenha as informações do documento
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Verifique se o documento tem páginas
if (documentInfo.getPageCount() == 0) {
    System.out.println("The document has zero pages.");
    return;
}

// Iterar nas páginas
for (int p = 0; p < documentInfo.getPageCount(); p++) {
    // Imprimir um número de página
    System.out.println(String.format("Page number: %d/%d", p + 1, documentInfo.getPageCount()));
    // Extraia um texto para o leitor
    try (TextReader reader = parser.getText(p)) {
        // Imprimir um texto do documento
        // Ignoramos a verificação nula, pois verificamos o suporte ao recurso de extração de texto anteriormente
        System.out.println(reader.readToEnd());
    }
}
Extrair texto de páginas específicas de um documento usando Java

Extrair texto de páginas específicas de um documento usando Java

Obter destaque de documentos do Word usando Java

Um destaque é uma parte do texto que geralmente é usada para explicar o contexto do texto encontrado na funcionalidade de pesquisa. Você pode extrair um destaque de um documento seguindo as etapas simples mencionadas abaixo:

O exemplo de código a seguir mostra como extrair um destaque de um documento usando Java.

// Crie uma instância da classe Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Extraia um destaque:
    HighlightItem hl = parser.getHighlight(0, true, new HighlightOptions(8));
    // Verifique se a extração de realce é suportada
    if (hl == null) {
        System.out.println("Highlight extraction isn't supported");
        return;
    }
    // Imprimir um destaque extraído
    System.out.println(String.format("At %d: %s", hl.getPosition(), hl.getText()));
}
At 0: Overview

Extrair texto formatado do DOCX usando Java

Você pode analisar documentos do Word e extrair texto sem perder a formatação do estilo seguindo as etapas simples mencionadas abaixo:

O exemplo de código a seguir mostra como extrair texto formatado de um arquivo DOCX usando Java.

// Crie uma instância da classe Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Extraia um texto formatado no leitor
    try (TextReader reader = parser.getFormattedText(new FormattedTextOptions(FormattedTextMode.Html))) {
        // Imprimir um texto formatado do documento
        // Se a extração de texto formatado não for compatível, um leitor será nulo
        System.out.println(reader == null ? "Formatted text extraction isn't suppported" : reader.readToEnd());
    }
}
Extrair texto formatado do DOCX usando Java

Extrair texto formatado do DOCX usando Java

Extrair texto por índice usando Java

Você pode extrair o texto do documento pelo índice seguindo as etapas simples mencionadas abaixo:

  • Primeiramente, carregue o arquivo DOCX usando a classe Parser.
  • Em seguida, chame o método Parser.getToc() para extrair um índice como uma coleção de objetos de classe TocItem. O TocItem representa o item que é usado na funcionalidade de extração de índice.
  • Agora, verifique se a coleção não é nula.
  • Em seguida, itere sobre a coleção de TocItem e chame o método TocItem.extractText() para extrair texto do documento ao qual o objeto TocItem se refere.
  • Obtenha resultados no objeto de classe TextReader.
  • Finalmente, chame o método TextReader.readToEnd() para ler todo o texto.

O exemplo de código a seguir mostra como extrair texto pelo índice de documentos do Word usando Java.

// Crie uma instância da classe Parser
try (Parser parser = new Parser("C:\\Files\\sampleTOC.docx")) {
    // Obter índice
    Iterable<TocItem> tocItems = parser.getToc();
    // Verifique se a extração de toc é suportada
    if (tocItems == null) {
        System.out.println("Table of contents extraction isn't supported");
    }
    else
    {
        // Iterar sobre os itens
        for (TocItem tocItem : tocItems) {
            // Imprima o texto do capítulo
            try (TextReader reader = tocItem.extractText()) {
                System.out.println("----");
                System.out.println(reader.readToEnd());
            }
        }
    }
}
Extrair texto por índice usando Java

Extrair texto por índice usando Java

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como extrair texto de documentos do Word usando Java. Além disso, você viu como extrair texto formatado de um arquivo DOCX programaticamente. Este artigo também explicou como extrair texto pelo índice e extrair um destaque de um documento. Além disso, você pode aprender mais sobre GroupDocs.Parser for Java API usando a documentação. Em caso de qualquer ambiguidade, não hesite em contactar-nos no fórum.

Veja também