Los documentos de Microsoft Word son ampliamente utilizados para crear y compartir contenido textual. Si estás trabajando con documentos de Word en tus aplicaciones C#, es posible que necesites extraer texto de documentos de Word usando C# ASP.NET y extraer texto preservando el formato. Por ejemplo, podrías querer 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 para Extraer Texto de Documentos de Word
- Extracción de Texto en Documentos de Word
- Extraer Texto de un Documento 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, incluyendo extracción de texto de documentos de Word en .NET, creación, manipulación y conversión de documentos. Con Aspose.Words para .NET, puedes manejar varios aspectos de los documentos de Word, convirtiéndolo en una herramienta valiosa para desarrolladores que buscan extracción eficiente de texto de Word en C#.
Puedes descargar la 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 pueden variar de un escenario a otro. Por ejemplo, podrías necesitar extraer texto de un documento de Word escaneado en C# o extraer texto de un archivo de Word C# .NET. Cada tipo de elemento en un documento de Word está representado como un nodo. Por lo tanto, para procesar un documento, deberás interactuar con los nodos. Comencemos y veamos cómo extraer texto de documentos de Word en diferentes escenarios mientras aseguramos manejar el formato de las 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 la extracción de texto sería 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 fin).
- Finalmente, utilizaremos un clon 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:
- StartNode y EndNode como puntos de inicio y fin para la extracción del contenido, respectivamente. Estos pueden ser nodos de nivel de bloque (Párrafo, Tabla) o de nivel en línea (por ejemplo, Run, FieldStart, BookmarkStart, etc.).
- Para pasar un campo, debes pasar el objeto FieldStart correspondiente.
- Para pasar marcadores, se deben pasar los nodos BookmarkStart y BookmarkEnd.
- Para comentarios, se deben usar los nodos CommentRangeStart y CommentRangeEnd.
- IsInclusive define si los marcadores están incluidos en la extracción o no. 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 pasaron, extrayendo con precisión texto de un documento de Word protegido en C#.
También se requieren algunos métodos auxiliares para que el método ExtractContent lleve a cabo la operación de extracción de texto, que son los siguientes.
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, carga el documento de Word usando la clase Document.
- Obtén referencia a los párrafos de inicio y fin en dos objetos usando el método Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean).
- Llama al método ExtractContent(startPara, endPara, true) para extraer los nodos en un objeto.
- Llama al método auxiliar GenerateDocument(Document, extractedNodes) para crear un documento que consista en el contenido extraído.
- Finalmente, guarda el documento devuelto usando el método Document.Save(string).
El siguiente ejemplo de código muestra cómo extraer de manera eficiente texto de archivos de Word grandes extrayendo 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 puedes extraer contenido entre diferentes tipos de nodos. Para la demostración, extraigamos contenido entre un párrafo y una tabla y guárdalo en un nuevo documento de Word. Los siguientes pasos realizan esta operación.
- Carga el documento de Word usando la clase Document.
- Obtén referencia a los nodos de inicio y fin en dos objetos usando el método Document.FirstSection.Body.GetChild(NodeType, int, boolean).
- Llama al método ExtractContent(startPara, endPara, true) para extraer los nodos en un objeto.
- Llama al método auxiliar GenerateDocument(Document, extractedNodes) para crear un documento que consista en el contenido extraído.
- Guarda 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, carga el documento de Word usando la clase Document.
- Luego, extrae párrafos en un objeto usando el método auxiliar ParagraphsByStyleName(Document, “Encabezado 1”).
- Extrae párrafos en otro objeto usando el método auxiliar ParagraphsByStyleName(Document, “Encabezado 3”).
- Llama al método ExtractContent(startPara, endPara, true) y pasa los primeros elementos en ambas matrices de párrafos como los primeros y segundos parámetros.
- Llama al método auxiliar GenerateDocument(Document, extractedNodes) para crear un documento que consista en el contenido extraído.
- Finalmente, guarda 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
Puedes explorar otros escenarios de la API .NET para la extracción de texto de documentos de Word usando este artículo de documentación.
Obtén una Biblioteca de Extractor de Texto de Word Gratis
Puedes 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 API fácil de usar, puedes trabajar de manera eficiente con documentos de Word y automatizar diferentes escenarios de manejo de caracteres especiales durante la extracción de texto de Word en C#. Ya sea que estés construyendo aplicaciones que necesiten procesar documentos de Word o simplemente extrayendo texto, Aspose.Words para .NET es una herramienta valiosa para los desarrolladores.
Puedes explorar otras características de Aspose.Words para .NET usando la documentación. En caso de que tengas alguna pregunta, no dudes en hacérnoslo saber a través de nuestro foro.
Ver También
- Crear Documentos de Word en C# sin MS Office
- Generar Documentos de Word a partir de Plantillas en C# .NET
Consejo: Puede que desees revisar Aspose Convertidor de PowerPoint a Word porque demuestra el popular proceso de conversión de presentaciones a documentos de Word.