
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
- Extrair texto de documentos do Word usando Java
- Extrair texto de páginas específicas de um documento do Word usando Java
- Obter destaque de documentos do Word usando Java
- Extrair texto formatado do DOCX usando Java
- Extrair texto por índice usando Java
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 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:
- Primeiramente, carregue o arquivo DOCX usando a classe Parser.
- Em seguida, use Parser.getFeatures().isText() para verificar se o documento suporta o recurso de extração de texto. Leia mais sobre recursos compatíveis.
- Agora, chame o método Parser.getDocumentInfo() para obter as informações gerais sobre o documento. Como Tipo de Arquivo, Contagem de Páginas, Tamanho, etc.
- Obtenha resultados do método Parser.getDocumentInfo() no objeto de interface IDocumentInfo.
- Em seguida, verifique se o IDocumentInfo.getPageCount() não é zero. Este método retorna o número total de páginas do documento.
- Itere sobre todas as páginas e chame o método Parser.getText() para cada índice de página para extrair texto e obter resultados no objeto de classe TextReader.
- Por fim, mostre os resultados chamando o método TextReader.readToEnd() para ler o texto extraído.
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
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:
- Primeiramente, carregue o arquivo DOCX usando a classe Parser.
- Crie uma instância do objeto de classe HighlightOptions e passe o comprimento máximo como um parâmetro de entrada para seu construtor para extrair um realce de comprimento fixo.
- Em seguida, chame o método Parser.getHighlight() com a posição inicial e o objeto de classe HighlightOptions para extrair um destaque do documento como um objeto da classe HighlightItem.
- Finalmente, chame os métodos Highlight.getPosition() e HighlightItem.getText() para obter a posição e o texto do realce.
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:
- Primeiramente, carregue o arquivo DOCX usando a classe Parser.
- Defina as FormattedTextOptions e defina o FormattedTextMode como HTML. Ele permite que você extraia um texto formatado em HTML do documento.
- Em seguida, chame o método Parser.getFormattedText() para extrair o texto formatado.
- Obtenha resultados do método Parser.getText() 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 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 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
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.