
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
- Extraiga texto de documentos de Word usando Java
- Extraiga texto de páginas específicas de un documento de Word usando Java
- Obtenga lo más destacado de los documentos de Word usando Java
- Extraiga texto formateado de DOCX usando Java
- Extraiga texto por tabla de contenido usando Java
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 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:
- En primer lugar, cargue el archivo DOCX usando la clase Parser.
- Luego, use Parser.getFeatures().isText() para verificar si el documento admite la función de extracción de texto. Obtenga más información sobre las características admitidas.
- Ahora, llama al método Parser.getDocumentInfo() para obtener la información general sobre el documento. Tales como tipo de archivo, número de páginas, tamaño, etc.
- Obtenga resultados del método Parser.getDocumentInfo() en el objeto de interfaz IDocumentInfo.
- Luego, verifique si IDocumentInfo.getPageCount() no es cero. Este método devuelve el número total de páginas del documento.
- Repita todas las páginas y llame al método Parser.getText() para cada índice de página para extraer texto y obtener resultados en el objeto de clase TextReader.
- Finalmente, muestre los resultados llamando al método TextReader.readToEnd() para leer el texto extraído.
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
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:
- En primer lugar, cargue el archivo DOCX usando la clase Parser.
- Cree una instancia del objeto de clase HighlightOptions y pase la longitud máxima como parámetro de entrada a su constructor para extraer un resaltado de longitud fija.
- Luego, llame al método Parser.getHighlight() con la posición de inicio y el objeto de clase HighlightOptions para extraer un resaltado del documento como un objeto de la clase HighlightItem.
- Finalmente, llame a los métodos Highlight.getPosition() y HighlightItem.getText() para obtener la posición y el texto del resaltado.
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:
- En primer lugar, cargue el archivo DOCX usando la clase Parser.
- Defina las Opciones de texto con formato y establezca el Modo de texto con formato en HTML. Le permite extraer un texto con formato HTML del documento.
- Luego, llama al método Parser.getFormattedText() para extraer el texto formateado.
- Obtenga resultados del método Parser.getText() 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 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 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
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.