Extraiga texto de documentos de Word usando Java

En ciertos casos, es posible que deba extraer texto de sus documentos de Word para diversos fines. Como desarrollador de Java, puede extraer fácilmente texto de archivos DOC o DOCX mediante programación. En este artículo, aprenderá cómo extraer texto de documentos de Word utilizando Java.

Los siguientes temas se discuten/tratan en este artículo:

API de Java para extraer texto de documentos de Word

Para extraer texto de los archivos DOC o DOCX, utilizaremos la API GroupDocs.Parser para Java. Permite extraer texto, metadatos e imágenes de formatos de archivo populares de Word, PDF, Excel y PowerPoint. También es compatible con la extracción de texto sin procesar, formateado y estructurado de los archivos de formatos admitidos.

Puede descargar el JAR de la API o simplemente agregar la siguiente configuración pom.xml en su aplicación Java basada en Maven para probar los ejemplos de código que se mencionan a continuación.

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

Extraiga texto de documentos de Word usando Java

Puede analizar cualquier documento de Word y extraer texto siguiendo los sencillos pasos que se mencionan a continuación:

  • En primer lugar, cargue el archivo DOCX usando la clase Parser.
  • Luego, llame al método Parser.getText() para extraer texto del documento cargado.
  • Obtenga resultados del método Parser.getText() en el objeto de clase TextReader.
  • Finalmente, llama al método TextReader.readToEnd() para leer todos los caracteres desde la posición actual hasta el final del lector de texto y devolverlos como una sola cadena.

El siguiente ejemplo de código muestra cómo extraer texto de un archivo DOCX usando Java.

// Crear una instancia de la clase Parser
Parser parser = new Parser("C:\\Files\\sample.docx");

// Extraer un texto sin procesar en el lector
try (TextReader reader = parser.getText()) {
    // Imprimir un texto del documento
    // Si no se admite la extracción de texto, un lector es nulo
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Extraiga texto de documentos de Word usando Java

Extraiga texto de documentos de Word usando Java

Extraiga texto de páginas específicas de un documento de Word usando Java

Puede analizar un documento de Word y extraer texto de una página específica siguiendo los sencillos pasos que se mencionan a continuación:

El siguiente ejemplo de código muestra cómo extraer texto de las páginas una por una usando Java.

// Crear una instancia de la clase Parser
Parser parser = new Parser("C:\\Files\\sample.docx");

// Compruebe si el documento admite la extracción de texto
if (!parser.getFeatures().isText()) {
    System.out.println("The document doesn't support text extraction.");
    return;
}

// Obtener la información del documento
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Comprobar si el documento tiene páginas
if (documentInfo.getPageCount() == 0) {
    System.out.println("The document has zero pages.");
    return;
}

// Iterar sobre páginas
for (int p = 0; p < documentInfo.getPageCount(); p++) {
    // Imprimir un número de página
    System.out.println(String.format("Page number: %d/%d", p + 1, documentInfo.getPageCount()));
    // Extraer un texto en el lector
    try (TextReader reader = parser.getText(p)) {
        // Imprimir un texto del documento
        // Ignoramos la verificación nula ya que hemos verificado la compatibilidad con la función de extracción de texto anteriormente
        System.out.println(reader.readToEnd());
    }
}
Extraiga texto de páginas específicas de un documento usando Java

Extraiga texto de páginas específicas de un documento usando Java

Obtenga lo más destacado de los documentos de Word usando Java

Un resaltado es una parte del texto que generalmente se usa para explicar el contexto del texto encontrado en la función de búsqueda. Puede extraer un resaltado de un documento siguiendo los sencillos pasos que se mencionan a continuación:

El siguiente ejemplo de código muestra cómo extraer un resaltado de un documento mediante Java.

// Crear una instancia de la clase Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Extraer un punto culminante:
    HighlightItem hl = parser.getHighlight(0, true, new HighlightOptions(8));
    // Compruebe si se admite la extracción de resaltado
    if (hl == null) {
        System.out.println("Highlight extraction isn't supported");
        return;
    }
    // Imprimir un resaltado extraído
    System.out.println(String.format("At %d: %s", hl.getPosition(), hl.getText()));
}
At 0: Overview

Extraiga texto formateado de DOCX usando Java

Puede analizar documentos de Word y extraer texto sin perder el formato de estilo siguiendo los sencillos pasos que se mencionan a continuación:

El siguiente ejemplo de código muestra cómo extraer texto formateado de un archivo DOCX usando Java.

// Crear una instancia de la clase Parser
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // Extraer un texto formateado en el lector
    try (TextReader reader = parser.getFormattedText(new FormattedTextOptions(FormattedTextMode.Html))) {
        // Imprimir un texto formateado del documento
        // Si no se admite la extracción de texto con formato, un lector es nulo
        System.out.println(reader == null ? "Formatted text extraction isn't suppported" : reader.readToEnd());
    }
}
Extraiga texto formateado de DOCX usando Java

Extraiga texto formateado de DOCX usando Java

Extraiga texto por tabla de contenido usando Java

Puede extraer texto del documento por la tabla de contenido siguiendo los sencillos pasos que se mencionan a continuación:

  • En primer lugar, cargue el archivo DOCX usando la clase Parser.
  • Luego, llame al método Parser.getToc() para extraer una tabla de contenido como una colección de objetos de clase TocItem. El TocItem representa el elemento que se utiliza en la funcionalidad de extracción de la tabla de contenido.
  • Ahora, compruebe si la colección no es nula.
  • Luego, itere sobre la colección de TocItem y llame al método TocItem.extractText() para extraer texto del documento al que hace referencia el objeto TocItem.
  • Obtenga resultados en el objeto de clase TextReader.
  • Finalmente, llama al método TextReader.readToEnd() para leer todo el texto.

El siguiente ejemplo de código muestra cómo extraer texto por la tabla de contenido de documentos de Word usando Java.

// Crear una instancia de la clase Parser
try (Parser parser = new Parser("C:\\Files\\sampleTOC.docx")) {
    // Obtener índice
    Iterable<TocItem> tocItems = parser.getToc();
    // Compruebe si se admite la extracción de toc
    if (tocItems == null) {
        System.out.println("Table of contents extraction isn't supported");
    }
    else
    {
        // Iterar sobre elementos
        for (TocItem tocItem : tocItems) {
            // Imprimir el texto del capítulo
            try (TextReader reader = tocItem.extractText()) {
                System.out.println("----");
                System.out.println(reader.readToEnd());
            }
        }
    }
}
Extraiga texto por tabla de contenido usando Java

Extraiga texto por tabla de contenido usando Java

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido a extraer texto de documentos de Word usando Java. Además, ha visto cómo extraer texto formateado de un archivo DOCX mediante programación. Este artículo también explicó cómo extraer texto de la tabla de contenido y extraer un resaltado de un documento. Además, puede obtener más información sobre GroupDocs.Parser para la API de Java utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también