Se você tem um documento e deseja usar as imagens dentro desse documento em alguns outros documentos, aqui está uma das soluções. Neste artigo, aprenderemos a extrair imagens programaticamente de documentos PDF, Excel, PowerPoint e Word usando Java.
- API Java de extração de imagem
- Extração de imagem de documentos PDF em Java
- Extrair imagens de documentos do Word, Excel, PowerPoint em Java
- Extrair imagem de página específica em Java
API Java de extração de imagem
Para a extração das imagens, usaremos GroupDocs.Parser for Java. Essa API Java oferece suporte à 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. A seguir estão os formatos de documento suportados pela API Java 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 |
Antes de começar com os exemplos abaixo, recomendo configurar o ambiente baixando a versão mais recente da API Java de análise de documentos da seção de downloads ou você pode definir as seguintes configurações em seu *baseado em maven * aplicativos java:
<repository>
<id>GroupDocsJavaAPI</id>
<name>GroupDocs Java API</name>
<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>20.8</version>
</dependency>
Extraia imagens de documentos PDF em Java
Siga estes passos simples para obter todas as imagens do documento PDF.
- Instancie o objeto de classe Parser.
- Chame o método getImages da classe Parser para obter todas as imagens.
- Itere sobre imagens usando PageImageArea.
- Salve imagens usando o método save de PageImageArea.
Está feito. Veja o código completo abaixo. As imagens extraídas podem ser salvas nos formatos BMP, GIF, JPEG, PNG e WebP.
// Extraia imagens de documentos do Word, Excel, PowerPoint, PDF programaticamente usando GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
// Extrair imagens
Iterable<PageImageArea> images = parser.getImages();
// Crie as opções para salvar imagens no formato PNG
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// Iterar sobre imagens e salvar
for (PageImageArea image : images) {
// Imprima o índice de página, retângulo e tipo de arquivo de imagem:
System.out.println(String.format("Page: %d, R: %s, Type: %s", image.getPage().getIndex(),
image.getRectangle(), image.getFileType()));
image.save(String.format("filesPath/image_%d.png", imageNumber), options);
imageNumber++;
}
}
Estas são as imagens recuperadas do documento PDF usando o código acima.
Extraia imagens de arquivos do Word, Excel, PowerPoint em Java
Da mesma forma, todas as imagens podem ser retiradas dos arquivos de processamento de texto, planilhas, apresentações, com a base de código inalterada. O que você tem que mudar? Apenas o caminho do documento de origem e a extensão de arquivo correta.
Parser parser = new Parser("path/document.docx") // Word Document
// Parser parser = new Parser("path/document.xlsx") // Excel Spreadsheet
// Parser parser = new Parser("path/document.pptx") // PowerPoint Presentation
// Parser parser = new Parser("path/document.pdf") // PDF Document
Extração de imagem de página de documento específica em Java
Se você não deseja extrair todas as imagens de todo o documento, mas de alguma página específica. O código abaixo demonstra como podemos extrair imagens de uma determinada página do documento em Java.
// Extraia imagens de uma página específica do Word, Excel, PowerPoint, PDF em Java usando GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
// Obtenha as informações do documento
IDocumentInfo documentInfo = parser.getDocumentInfo();
// Crie as opções para salvar imagens no formato PNG
ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
int imageNumber = 0;
// Iterar nas páginas
for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
// Imprimir números de página
System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));
// Iterar sobre imagens - Ignorando NULL-Checking nos exemplos
for (PageImageArea image : parser.getImages(pageIndex)) {
// Imprimir informações de imagem e salvar arquivo
System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
imageNumber++;
}
}
}
Conclusão
Hoje, aprendemos como extrair imagens de todo o documento e da página específica de documentos de processamento de texto, planilhas, apresentações e PDF em Java. Não há diferença no código se tivermos que extrair imagens dos arquivos de diferentes formatos de arquivo. Só temos que passar o caminho e o nome certos. É isso.