Extraiga Texto de Documentos de MS Word en C#

Los documentos de Microsoft Word son ampliamente utilizados para crear y compartir contenido textual. Si está trabajando con documentos de Word en sus aplicaciones C#, es posible que necesite extraer texto de documentos de Word usando C# ASP.NET y extraer texto preservando el formato. Por ejemplo, puede que desee analizar el texto, extraer secciones particulares de un documento o combinarlas en un solo documento. En este blog, exploraremos cómo extraer texto de documentos de Word en C# utilizando la mejor biblioteca C# para la extracción de texto de documentos de Word.

Biblioteca C# para Extraer Texto de Documentos de Word

Aspose.Words para .NET es una biblioteca rica en características y fácil de usar para trabajar con documentos de Word. Ofrece una amplia gama de capacidades, incluida la extracción de texto de documentos de Word en .NET, creación de documentos, manipulación y conversión. Con Aspose.Words para .NET, puede manejar varios aspectos de los documentos de Word, convirtiéndola en una herramienta valiosa para los desarrolladores que buscan extracción eficiente de texto de Word en C#.

Puede descargar el archivo DLL o instalar la biblioteca directamente desde NuGet usando la consola del administrador de paquetes.

PM> Install-Package Aspose.Words

Extrayendo Texto de Documentos de Word

Un documento de MS Word consiste en varios elementos que incluyen párrafos, tablas, imágenes, etc. Por lo tanto, los requisitos de extracción de texto podrían variar de un escenario a otro. Por ejemplo, es posible que necesite extraer texto de documentos de Word escaneados en C# o extraer texto de archivos de Word en C# .NET. Cada tipo de elemento en un documento de Word está representado como un nodo. Por lo tanto, para procesar un documento, deberá interactuar con los nodos. Comencemos y veamos cómo extraer texto de documentos de Word en diferentes escenarios mientras garantizamos que manejemos el formato de palabras al extraer texto en C# de manera efectiva.

Extraer Texto de un DOC de Word en C#

En esta sección, vamos a implementar un extractor de texto en C# para documentos de Word, y el flujo de trabajo de extracción de texto será el siguiente:

  • Primero, definiremos los nodos que queremos incluir en el proceso de extracción de texto.
  • Luego, extraeremos el contenido entre los nodos especificados (incluyendo o excluyendo los nodos de inicio y final).
  • Finalmente, utilizaremos una copia de los nodos extraídos, por ejemplo, para crear un nuevo documento de Word que consista en el contenido extraído.

Ahora escribamos un método llamado ExtractContent al que pasaremos los nodos y algunos otros parámetros para realizar la extracción de texto. Este método analizará el documento y clonará los nodos. Los siguientes son los parámetros que pasaremos a este método:

  1. StartNode y EndNode como puntos de inicio y final para la extracción de contenido, respectivamente. Estos pueden ser nodos de nivel bloque (Paragraph, Table) o de nivel en línea (por ejemplo, Run, FieldStart, BookmarkStart, etc.).
    1. Para pasar un campo, debe pasar el objeto correspondiente FieldStart.
    2. Para pasar marcadores, deben pasarse los nodos BookmarkStart y BookmarkEnd.
    3. Para comentarios, deben usarse los nodos CommentRangeStart y CommentRangeEnd.
  2. IsInclusive define si los marcadores se incluyen o no en la extracción. Si esta opción se establece en falso y se pasan el mismo nodo o nodos consecutivos, entonces se devolverá una lista vacía.

La siguiente es la implementación completa del método ExtractContent que extrae el contenido entre los nodos que se pasan, extrayendo con precisión texto de documentos de Word protegidos en C#.

También se requieren algunos métodos auxiliares por el método ExtractContent para completar la operación de extracción de texto, que se dan a continuación.

Ahora estamos listos para utilizar estos métodos y extraer texto de documentos de Word usando C#.

Extraer Texto entre Párrafos de un Documento de Word

Veamos cómo extraer contenido entre dos párrafos en un documento DOCX de Word. Los siguientes pasos realizan esta operación en C#.

  • Primero, cargue el documento de Word usando la clase Document.
  • Obtenga referencia a los párrafos de inicio y fin en dos objetos usando el método Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
  • Llame al método ExtractContent(startPara, endPara, true) para extraer los nodos en un objeto.
  • Llame al método auxiliar GenerateDocument(Document, extractedNodes) para crear un documento que consista en el contenido extraído.
  • Finalmente, guarde el documento devuelto usando el método Document.Save(string).

El siguiente ejemplo de código muestra cómo extraer eficientemente texto de archivos grandes de Word al extraer texto entre el séptimo y el undécimo párrafo en un documento de Word en C#.

Extraer Texto entre Diferentes Tipos de Nodos

También puede extraer contenido entre diferentes tipos de nodos. Para demostrar, vamos a extraer contenido entre un párrafo y una tabla y guardarlo en un nuevo documento de Word. Los siguientes pasos realizan esta operación.

  • Cargue el documento de Word usando la clase Document.
  • Obtenga referencia a los nodos de inicio y fin en dos objetos usando el método Document.FirstSection.Body.GetChild(NodeType, int, boolean).
  • Llame al método ExtractContent(startPara, endPara, true) para extraer los nodos en un objeto.
  • Llame al método auxiliar GenerateDocument(Document, extractedNodes) para crear un documento que consista en el contenido extraído.
  • Guarde el documento devuelto usando el método Document.Save(string).

El siguiente ejemplo de código muestra cómo extraer texto entre un párrafo y una tabla en C#.

Extraer Texto entre Párrafos basado en Estilos

Ahora veamos cómo extraer contenido entre párrafos basado en estilos. Para la demostración, vamos a extraer contenido entre el primer “Encabezado 1” y el primer “Encabezado 3” en el documento de Word. Los siguientes pasos demuestran cómo lograr esto en C#.

  • Primero, cargue el documento de Word usando la clase Document.
  • Luego, extraiga párrafos en un objeto usando el método auxiliar ParagraphsByStyleName(Document, “Heading 1”).
  • Extraiga párrafos en otro objeto usando el método auxiliar ParagraphsByStyleName(Document, “Heading 3”).
  • Llame al método ExtractContent(startPara, endPara, true) y pase los primeros elementos en ambos arreglos de párrafos como el primer y el segundo parámetro.
  • Llame al método auxiliar GenerateDocument(Document, extractedNodes) para crear un documento que consista en el contenido extraído.
  • Finalmente, guarde el documento devuelto usando el método Document.Save(string).

El siguiente ejemplo de código muestra cómo extraer contenido entre párrafos basado en estilos.

Lee Más sobre Extracción de Texto

Puede explorar otros escenarios de la API .NET para la extracción de texto de documentos de Word utilizando este artículo de documentación.

Obtenga la Biblioteca de Extractor de Texto de Word Gratuita

Puede obtener una licencia temporal gratuita para extraer texto sin limitaciones de evaluación.

Conclusión

Aspose.Words para .NET es una biblioteca versátil que simplifica el proceso de C# extraer texto de Word preservando el formato. Con sus extensas características y su API fácil de usar, puede trabajar eficientemente con documentos de Word y automatizar diferentes escenarios de manejo de caracteres especiales durante la extracción de texto de palabras en C#. Ya sea que esté desarrollando aplicaciones que necesiten procesar documentos de Word o simplemente extrayendo texto, Aspose.Words para .NET es una herramienta valiosa para los desarrolladores.

Puede explorar otras características de Aspose.Words para .NET utilizando la documentación. En caso de que tenga alguna pregunta, no dude en hacérnoslo saber a través de nuestro foro.

Vea También

Consejo: Puede que desee comprobar el Convertidor de PowerPoint a Word de Aspose porque demuestra el proceso popular de conversión de presentaciones a documentos de Word.