Extraer texto de DOCX

La mayoría de los datos se representan como texto visual en documentos, imágenes y en la web, por lo que la extracción de datos de texto a veces es lo más necesario. Es posible que necesite extraer texto o imágenes de documentos de Word o PDF. Como desarrollador de C#, puede extraer fácilmente texto de documentos mediante programación. En este artículo, aprenderá cómo extraer texto de los documentos DOC o DOCX usando C#.

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

API C# para extracción de texto

Usaré la API GroupDocs.Parser para .NET para extraer un texto de los documentos DOCX. Permite extraer texto, metadatos e imágenes de documentos de formato de archivo compatibles, como Word, PDF, Excel y Powerpoint. También admite la extracción de texto sin procesar, formateado y estructurado, así como metadatos de los archivos de formatos admitidos.

Puede descargar la DLL de la API o instalarla mediante NuGet.

Install-Package GroupDocs.Parser

Extraer texto de DOCX usando C#

Puede analizar fácilmente cualquier documento y extraer texto siguiendo los sencillos pasos que se mencionan a continuación:

  • Crear una instancia de la clase Parser
  • Especificar la ruta del archivo
  • Llame al método GetText de la clase Parser para extraer texto
  • Obtener resultados en el objeto de la clase TextReader
  • Mostrar resultados llamando al método ReadToEnd de la clase TextReader

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

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

// Extraer un texto en el lector
using (TextReader reader = parser.GetText())
{
    // Imprimir un texto del documento
    // Si no se admite la extracción de texto, un lector es nulo
    Console.WriteLine(reader == null ? "Text extraction isn't supported" : reader.ReadToEnd());
}
Extraer texto de DOCX usando C#

Extraer texto de DOCX usando C#

La clase Parser es la clase principal que proporciona funciones de análisis y extracción de texto e imágenes. Especifiqué la ruta del archivo de entrada en el constructor de esta clase.

El método GetText() de la clase Parser extrae un texto del documento especificado.

Obtenga texto formateado de DOCX usando C#

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

  • Crear una instancia de la clase Parser
  • Especificar la ruta del archivo
  • Definir Opciones de texto formateado
  • Establezca FormattedTextMode en HTML
  • Llame al método GetFormattedText de la clase Parser para extraer texto
  • Obtener resultados en el objeto de la clase TextReader
  • Mostrar resultados llamando al método ReadToEnd de la clase TextReader

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

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

// Extraer un texto formateado en el lector
using (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
    Console.WriteLine(reader == null ? "Formatted text extraction isn't suppported" : reader.ReadToEnd());
}
Extraiga texto formateado de DOCX usando C#

Extraiga texto formateado de DOCX usando C#

La clase FormattedTextOptions proporciona las opciones que se utilizan para la extracción de texto formateado, como la extracción Modo. Establecí el modo de extracción en el HTML que extrae el texto de un documento como HTML .

El método GetFormattedText() de la clase Parser extrae un texto formateado del documento especificado.

Extraer texto formateado de páginas usando C#

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

El siguiente ejemplo de código muestra cómo extraer texto con formato de las páginas una por una usando C#.

// Crear una instancia de la clase Parser
using (Parser parser = new Parser(@"C:\Files\sample.docx"))
{
    // Compruebe si el documento admite la extracción de texto formateado
    if (!parser.Features.FormattedText)
    {
        Console.WriteLine("Document isn't supports formatted text extraction.");
        return;
    }

    // Obtener la información del documento
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    // Comprobar si el documento tiene páginas
    if (documentInfo.PageCount == 0)
    {
        Console.WriteLine("Document hasn't pages.");
        return;
    }

    // Iterar sobre páginas
    for (int p = 0; p < documentInfo.PageCount; p++)
    {
        // Imprimir un número de página 
        Console.WriteLine(string.Format("Page {0}/{1}", p + 1, documentInfo.PageCount));
        // Extraer un texto formateado en el lector
        using (TextReader reader = parser.GetFormattedText(p, new FormattedTextOptions(FormattedTextMode.Html)))
        {
            // Imprimir un texto formateado del documento
            // Ignoramos la verificación nula ya que hemos verificado la compatibilidad con la función de extracción de texto formateado anteriormente
            Console.WriteLine(reader.ReadToEnd());
        }
    }
}
Extraer texto formateado de páginas usando C#

Extraer texto formateado de páginas usando C#

La clase Parser proporciona la propiedad Features que representa la clase Features. Se puede utilizar para comprobar si una función es compatible con el documento. Puede obtener más información sobre las funciones compatibles en la sección “Obtener funciones compatibles”.

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 C#. Puede obtener más información sobre GroupDocs.Parser para la API de .NET utilizando la documentación. En caso de cualquier ambigüedad, no dude en contactarnos en el foro.

Ver también