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.
Os seguintes tópicos serão abordados aqui:
- API .NET de extração de imagem, texto e metadados
- Extração de imagem de documentos PDF
- Extrair imagens de documentos do Word, Excel, PowerPoint
- Extrair imagem de página específica
- Formatos suportados para extração de imagem
API .NET de extração de imagem, texto e metadados
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#
Você pode recuperar facilmente todas as imagens de qualquer documento PDF seguindo estas etapas simples.
- Instancie o objeto de classe Parser com o documento de origem.
- Chame o método GetImages da classe Parser para obter a coleção de todas as imagens nos objetos PageImageArea.
- Itere em PageImageArea para obter todas as imagens.
- 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 for .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++;
}
}
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 for .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.
Tipo de documento | Formatos de arquivo |
---|---|
Documentos de processamento de texto | DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF |
Planilhas | XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS |
Apresentações | PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP |
Documentos Portáteis | |
E-mails | EML, EMLX, MSG |
Arquivos | ZIP |
Mais sobre GroupDocs.Parser
- Documentação
- Exemplos de código-fonte
- Referência da API
- Família (APIs locais| APIs de nuvem | Aplicativo on-line gratuito
Vamos conversar um pouco mais @ Free Support Forum