En la publicación anterior, discutimos cómo extraer imágenes de documentos en Java. Hoy, buscaremos lograr el mismo objetivo usando C#. No te preocupes si no has visitado la última publicación. En este artículo, aprenderemos a extraer imágenes mediante programación de documentos PDF, Excel, PowerPoint y Word en una aplicación C# mediante el análisis de documentos .NET API.

Extraer imágenes de documentos en .NET

Aquí se tratarán los siguientes temas:

API de .NET de extracción de imágenes, texto y metadatos

Analizar documentos y extraer datos en .NET

GroupDocs.Parser para .NET es una API de .NET de análisis de documentos y extracción de datos. Admite análisis de documentos y extracción de imágenes, texto y metadatos de documentos de procesamiento de texto, hojas de cálculo, presentaciones, archivos y enviar por correo electrónico documentos. Al final del artículo, se mencionan los formatos de documentos que son compatibles con la API para la extracción de imágenes.

En este artículo, usaremos esta API, por lo que recomendaría descargar sus archivos binarios o instalar la API desde NuGet para preparar el entorno.

Extraiga imágenes de documentos PDF en C#

Documento PDF para extraer imágenes

Puede recuperar fácilmente todas las imágenes de cualquier documento PDF siguiendo estos sencillos pasos.

  1. Cree una instancia del objeto de clase Parser con el documento de origen.
  2. Llame al método GetImages de la clase Parser para obtener la colección de todas las imágenes en los objetos PageImageArea.
  3. Iterar sobre PageImageArea para obtener cada imagen.
  4. Guarde las imágenes en el disco utilizando el método Guardar de PageImageArea.

Las imágenes extraídas se pueden guardar en formatos BMP, GIF, JPEG, PNG y WebP. El código completo se muestra a continuación para demostrar todos los pasos.

// Extraiga imágenes de Word, Excel, PPT, PDF en C# usando GroupDocs.Parser para .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    IEnumerable<PageImageArea> images = parser.GetImages();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;
    // Iterar sobre las imágenes recuperadas
    foreach (PageImageArea image in images)
    {
        // Guarde la imagen e imprima el índice de la página, el rectángulo y el tipo de imagen:
        Console.WriteLine(string.Format("Page: {0}, R: {1}, Type: {2}", image.Page.Index, image.Rectangle, image.FileType));
        image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
        imageNumber++;
    }
}
Imágenes extraídas del documento usando GroupDocs.Parser

Extraiga imágenes de archivos de Word, Excel y PowerPoint en C#

No restringido solo al formato PDF, podemos sacar todas las imágenes de documentos de procesamiento de texto, hojas de cálculo, presentaciones, con la base de código sin cambios. Simplemente cambie la ruta del documento de origen con la extensión del archivo, su documento se analizará para extraer y guardar todas las imágenes en el disco.

using (Parser parser = new Parser("path/document.docx")) // Word Document
// using (Parser parser = new Parser("path/document.xlsx")) // Excel Spreadhseet
// using (Parser parser = new Parser("path/document.pptx")) // Presentation
// using (Parser parser = new Parser("path/document.pdf")) // PDF Document

Extracción de imagen de una página de documento específica en C#

Si desea extraer imágenes de una página específica del documento, puede hacerlo fácilmente siguiendo los pasos mencionados a continuación y el código C#.

  • Obtenga la información sobre el documento usando el método GetDocumentInfo.
  • De la información del documento, saque el total PageCount y otra información.
  • Utilice el método GetImages(pageIndex) y pásele el índice de su página de destino.
  • Para guardar las imágenes recuperadas, recorra la colección de imágenes y guarde la imagen individual utilizando el método Guardar.
// Extraiga imágenes de una página específica de Word, Excel, PowerPoint, PDF en C# usando GroupDocs.Parser para .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    // Obtener la información del documento
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;

    // Iterar sobre páginas
    for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
    {
        // Imprimir un número de página 
        Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
        // Iterar sobre imágenes. Ignorando null-check en el ejemplo
        foreach (PageImageArea image in parser.GetImages(pageIndex))
        {
            // Imprimir un rectángulo y un tipo de imagen
            Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
            image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
            imageNumber++;
        }
    }
}

Formatos admitidos para la extracción de imágenes en C#

Los siguientes son los formatos de documentos que son compatibles con la API GroupDocs.Parser para .NET para la extracción de imágenes.

Más sobre GroupDocs.Parser

Hablemos un poco más @ Foro de soporte gratuito

Artículos relacionados