Extract Text from MS Word Documents in C#

Los documentos de Microsoft Word son un pañuelo para crear y compartir contenido de texto.Si está desarrollando aplicaciones C# que interactúan con estos documentos, puede que se encuentre necesario extraer texto de ellos. Esto podría ser para fines como el análisis de texto o extraer secciones específicas de un documento para compilar en un nuevo.En este post de blog, vamos a profundizar en los métodos para extraer texto de documentos de Word en C#.

Tabla de contenidos

C# Biblioteca para Extracción de Texto

Aspose.Words para .NET is a powerful and user-friendly library designed for working with Word documents. It provides a comprehensive set of features, including text extraction, document creation, manipulation, and conversion. With Aspose.Words for .NET, developers can efficiently manage various aspects of Word documents, making it an invaluable tool for your development needs.

To get started, Descarga la biblioteca or install it directly from Nuevos using the following command in the package manager console:

PM> Install-Package Aspose.Words

Comprender la extracción de texto en los documentos de Word

Un documento de MS Word contiene varios elementos como parágrafos, tablas y imágenes. Por lo tanto, los requisitos para la extracción de texto pueden diferir en función del caso de uso específico. Puede necesitar extraer texto entre parágrafos, etiquetas, comentarios, y más.

Cada elemento en un documento de Word se representa como un nodo. Por lo tanto, para procesar eficazmente un documento, tendrá que trabajar con estos nodo. Vamos a explorar cómo extraer texto de documentos de Word en diferentes escenarios.

Guía paso a paso para extraer texto de un documento de palabra

En esta sección implementamos un extractor de texto C# para documentos de Word. El flujo de trabajo para la extracción de texto incluirá los siguientes pasos:

  • Define los nodos a incluir en el proceso de extracción.
  • Extraer el contenido entre los nodos especificados (incluyendo o excluyendo los nodos de inicio y fin).
  • Utilice los nodos extraídos clonados para crear un nuevo documento de Word que contiene el contenido extraído.

Creemos un método llamado ExtractContent que aceptará nodos y otros parámetros para realizar la extracción de texto:

  • StartNode y EndNode: Estos definen los puntos de inicio y fin para la extracción de contenido. Pueden ser nódulos de nivel de bloque (por ejemplo, Parágrafo, Table) o nódulos de nivel de línea (por ejemplo, Run, FieldStart, BookmarkStart).- Para los campos, envíe el objeto correspondiente **FieldStart.

  • Para las notas, utilice los nodos BookmarkStart y **BookmarkEnd.

  • Para los comentarios, utilice los nodos CommentRangeStart y **CommentRangeEnd.

  • IsInclusive: Este parámetro determina si los marcadores están incluidos en la extracción.Si se establece a falso y se proporcionan los mismos o los nodos consecutivos, se devolverá una lista vacía.

Aquí está la implementación completa del método ExtractContent para extraer contenido entre los nodos especificados:

Además, algunos métodos de ayuda son necesarios por el método ExtractContent para facilitar la operación de extracción de texto:

Ahora que tenemos nuestros métodos listos, podemos proceder a extraer texto de un documento de Word.

Extracción de texto entre parágrafos de un documento de palabra {#extracción de texto entre parágrafos}

Para extraer contenido entre dos parágrafos en un documento Word DOCX, siga estos pasos:

  • Cargue el documento Word utilizando la clase **Documento.
  • Obtenga referencias a los parágrafos de inicio y fin utilizando el método **Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean.
  • Chame el método ExtractContent(startPara, endPara, True) para extraer los nodos a un objeto.
  • Utilice el método de ayuda GenerateDocument(Document, extractedNodes) para crear un documento con el contenido extraído.
  • Salva el nuevo documento utilizando el método **Document.Save(string.

Aquí hay una muestra de código que demuestra cómo extraer texto entre los parágrafos 7 y 11 en un documento de Word:

Extracción de texto entre diferentes tipos de nodos

También puede extraer contenido entre diferentes tipos de nodos. Por ejemplo, extraeremos contenido entre un párrafo y una tabla y guardarlo en un nuevo documento de Word:

  • Cargue el documento Word utilizando la clase **Documento.
  • Obtenga referencias a los nodos de inicio y fin utilizando el método **Document.FirstSection.Body.GetChild(NodeType, int, boolean.
  • Chame ExtractContent(startPara, endPara, True) para extraer los nodos a un objeto.
  • Utilice el método de ayuda GenerateDocument(Document, extractedNodes) para crear un documento con el contenido extraído.
  • Salva el nuevo documento utilizando Document.Save(string).

Aquí está la muestra de código para extraer texto entre un párrafo y una tabla en C#:

Extracción de texto basado en estilos {#extracción de texto entre parágrafos basado en estilos}

Para extraer contenido entre parágrafos basados en estilos, siga estos pasos.Para esta demostración, extraeremos contenido entre el primer “Título 1” y el primer “Título 3” en el documento de Word:

  • Cargue el documento Word utilizando la clase **Documento.
  • Extrae los párrafos a un objeto utilizando el método de ayuda **ParagraphsByStyleName(Documento, “Título 1.
  • Extrae los párrafos a otro objeto utilizando ParagraphsByStyleName(Documento, “Título 3”).
  • Chame ExtractContent(startPara, endPara, True) con los primeros elementos de ambos parágrafos.
  • Utilice el método de ayuda GenerateDocument(Document, extractedNodes) para crear un documento con el contenido extraído.
  • Salva el nuevo documento utilizando Document.Save(string).

Aquí hay una muestra de código para extraer contenido entre parágrafos basado en estilos:

Leer más sobre Extracción de texto

Explore additional scenarios for extracting text from Word documents through Este artículo de documentación.

Obtenga una librería de extractores de texto gratis

You can obtain a Licencia temporal gratuita to extract text without evaluation limitations.

Conclusión

Aspose.Words para .NET es una biblioteca versátil que simplifica el proceso de extracción de texto de documentos de Word en C#. Con sus extensas características y API amigable al usuario, puede trabajar de manera eficiente con documentos de Word y automatizar diferentes escenarios de extracción de texto. Si usted está desarrollando aplicaciones que requieren el procesamiento de documentos de Word o simplemente extracción de texto, Aspose.Words para .NET es una herramienta esencial para los desarrolladores.

To explore more features of Aspose.Words for .NET, check out the Documentación. If you have any questions, feel free to reach out via our El Foro.

Ver también

Tip: You may want to check out the Aspose PowerPoint para la palabra Converter, which demonstrates the popular process of converting presentations to Word documents.

More in this category