Si tiene un documento y desea utilizar las imágenes dentro de ese documento en otros documentos, esta es una de las soluciones. En este artículo, aprenderemos a extraer imágenes mediante programación de documentos PDF, Excel, PowerPoint y Word usando Java.

Extraer imágenes de documentos en Java

API de Java de extracción de imágenes

Analizar documentos y extraer datos en Java

Para la extracción de imágenes utilizaremos GroupDocs.Parser for Java. Esta API de Java admite el análisis de documentos y la extracción de imágenes, texto y metadatos de documentos de procesamiento de texto, hojas de cálculo, presentaciones, archivos , y documentos de correo electrónico. Los siguientes son los formatos de documentos admitidos por la API de Java para la extracción de imágenes.

Tipo de documento Formatos de archivo
Documentos de procesamiento de textos DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF
Hojas de cálculo XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS
Presentaciones PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Documentos portátiles PDF
Correos electrónicos EML, EMLX, MSG
Archivos ZIP

Antes de comenzar con los ejemplos a continuación, recomendaría configurar el entorno descargando la última versión de la API de análisis de documentos de Java desde la sección de descargas o puede establecer las siguientes configuraciones en su *basado en maven * aplicaciones 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>

Extraer imágenes de documentos PDF en Java

Documento PDF para extraer imágenes

Siga estos sencillos pasos para obtener todas las imágenes del documento PDF.

  1. Crea una instancia del objeto de clase Parser.
  2. Llame al método getImages de la clase Parser para obtener todas las imágenes.
  3. Iterar sobre imágenes usando PageImageArea.
  4. Guarde imágenes utilizando el método de guardado de PageImageArea.

Se hace. Vea el código completo a continuación. Las imágenes extraídas se pueden guardar en formatos BMP, GIF, JPEG, PNG y WebP.

// Extraiga imágenes de Word, Excel, PowerPoint, documentos PDF mediante programación usando GroupDocs.Parser for Java
try (Parser parser = new Parser("path/document.pdf")) {
	// Extraer imágenes
	Iterable<PageImageArea> images = parser.getImages();

	// Crea las opciones para guardar imágenes en formato PNG
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// Iterar sobre imágenes y guardar
	for (PageImageArea image : images) {
		// Imprima el índice de página, el rectángulo y el tipo de archivo de imagen:
		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 son las imágenes recuperadas del documento PDF utilizando el código anterior.

Imágenes extraídas del documento usando Java

Extraiga imágenes de archivos de Word, Excel, PowerPoint en Java

Del mismo modo, todas las imágenes se pueden sacar de los archivos de procesamiento de textos, hojas de cálculo, presentaciones, con la base de código sin cambios. ¿Qué tienes que cambiar? Solo la ruta del documento de origen y la extensión de archivo correcta.

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

Extracción de imágenes de una página de documento específica en Java

Si no quieres extraer todas las imágenes de todo el documento sino de alguna página en concreto. El siguiente código demuestra cómo podemos extraer imágenes de una página particular del documento en Java.

// Extraiga imágenes de una página específica de Word, Excel, PowerPoint, PDF en Java usando GroupDocs.Parser
try (Parser parser = new Parser("path/document.pdf"")) {
	// Obtener la información del documento
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// Crea las opciones para guardar imágenes en formato PNG
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// Iterar sobre 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 imágenes - Ignorando NULL-Checking en los ejemplos
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// Imprimir información de imagen y guardar archivo
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

Conclusión

Hoy aprendimos cómo extraer imágenes de todo el documento y la página específica de documentos de procesamiento de texto, hojas de cálculo, presentaciones y PDF en Java. No hay diferencia en el código si tenemos que extraer imágenes de los archivos de diferentes formatos de archivo. Solo tenemos que pasar la ruta y el nombre correctos. Eso es todo.

Ver también