No post anterior, discutimos como extrair imagens de documentos em Java. Hoje, procuraremos alcançar o mesmo objetivo usando C#. Não se preocupe se você não visitou o último post. Neste artigo, aprenderemos a extrair programaticamente imagens de documentos PDF, Excel, PowerPoint e Word em um aplicativo C# usando a API .NET de análise de documentos.

Extrair imagens de documentos em .NET

Os seguintes tópicos serão abordados aqui:

API .NET de extração de imagem, texto e metadados

Analisar documentos e extrair dados em .NET

GroupDocs.Parser for .NET é uma API .NET para análise de documentos e extração de dados. Ele é compatível com análise de documentos e extração de imagens, texto e metadados de documentos de processamento de texto, planilhas, apresentações, arquivos e e-mail documentos. No final do artigo, os formatos de documento são mencionados que são suportados pela API para extração de imagens.

Neste artigo, usaremos essa API, portanto, recomendo baixar seus binários ou instalar a API do NuGet para preparar o ambiente.

Extrair imagens de documentos PDF em C#

Documento PDF para Extrair Imagens

Você pode recuperar facilmente todas as imagens de qualquer documento PDF seguindo estas etapas simples.

  1. Instancie o objeto de classe Parser com o documento de origem.
  2. Chame o método GetImages da classe Parser para obter a coleção de todas as imagens nos objetos PageImageArea.
  3. Itere em PageImageArea para obter todas as imagens.
  4. Salve imagens no disco usando o método Save de PageImageArea.

As imagens extraídas podem ser salvas nos formatos BMP, GIF, JPEG, PNG e WebP. O código completo é mostrado abaixo para demonstrar todas as etapas.

// Extraia imagens do Word, Excel, PPT, PDF em 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 as imagens recuperadas
    foreach (PageImageArea image in images)
    {
        // Salvar imagem e imprimir índice de página, retângulo e tipo de imagem:
        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++;
    }
}
Imagens extraídas do documento usando GroupDocs.Parser

Extraia imagens de arquivos do Word, Excel, PowerPoint em C

Não se restringindo apenas ao formato PDF, podemos extrair todas as imagens de documentos de processamento de texto, planilhas, apresentações, com a base de código inalterada. Basta alterar o caminho do documento de origem com a extensão do arquivo, seu documento será analisado para extrair e salvar todas as imagens no 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

Extração de imagem de página de documento específica em c#

Se você deseja extrair imagens de uma página específica do documento, isso pode ser feito facilmente usando as etapas mencionadas abaixo e o código C#.

  • Obtenha as informações sobre o documento usando o método GetDocumentInfo.
  • Das informações do documento, retire o total de PageCount e outras informações.
  • Use o método GetImages(pageIndex) e passe o índice da página de destino para ele.
  • Para salvar as imagens recuperadas, percorra a coleção de imagens e salve a imagem individual usando o método Salvar.
// Extraia imagens de uma página específica do Word, Excel, PowerPoint, PDF em C# usando GroupDocs.Parser para .NET
using (Parser parser = new Parser("path/document.pdf"))
{
    // Obtenha as informações do documento
    IDocumentInfo documentInfo = parser.GetDocumentInfo();
    ImageOptions options = new ImageOptions(ImageFormat.Png);
    int imageNumber = 0;

    // Iterar nas páginas
    for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
    {
        // Imprimir um número de página 
        Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
        // Iterar sobre as imagens. Ignorando a verificação nula no exemplo
        foreach (PageImageArea image in parser.GetImages(pageIndex))
        {
            // Imprimir um retângulo e tipo de imagem
            Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
            image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
            imageNumber++;
        }
    }
}

Formatos suportados para extração de imagem em C#

A seguir estão os formatos de documento que são suportados pelo GroupDocs.Parser for .NET API para extração de imagem.

Mais sobre GroupDocs.Parser

Vamos conversar um pouco mais @ Free Support Forum

Artigos relacionados