如果您有一个文档,并且想在其他文档中使用该文档中的图像,这里是其中一种解决方案。在本文中,我们将学习使用 Java 以编程方式从 PDF、Excel、PowerPoint 和 Word 文档中提取图像

从 Java 文档中提取图像

图像提取 Java API

在 Java 中解析文档和提取数据

对于图像的提取,我们将使用 GroupDocs.Parser for Java。此 Java API 支持文档解析文字处理文档**、电子表格演示文稿、档案中提取图像、文本元数据 ,** 和 email 文件。以下是 Java API 支持的用于图像提取的文档格式。

在开始下面的示例之前,我建议通过从 下载部分 下载最新版本的文档解析 Java API 来设置环境,或者您可以在 maven-based 中设置以下配置 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>

用Java从PDF文档中提取图像

提取图像的 PDF 文档

按照这些简单的步骤从 PDF 文档中获取所有图像。

  1. 实例化 Parser 类对象。
  2. 调用 Parser 类的 getImages 方法获取所有图像。
  3. 使用 PageImageArea 迭代图像。
  4. 使用 PageImageArea 的 save 方法保存图像。

完成。请参阅下面的完整代码。提取的图像可以保存为 BMPGIFJPEGPNGWebP 格式。

// 使用 GroupDocs.Parser for Java 以编程方式从 Word、Excel、PowerPoint、PDF 文档中提取图像
try (Parser parser = new Parser("path/document.pdf")) {
	// 提取图像
	Iterable<PageImageArea> images = parser.getImages();

	// 创建以 PNG 格式保存图像的选项
	ImageOptions options = new ImageOptions(ImageFormat.Png);
	int imageNumber = 0;

	// 遍历图像并保存
	for (PageImageArea image : images) {
		// 打印页面索引、矩形和图像文件类型:
		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++;
	}
}

这些是使用上述代码从 PDF 文档中检索到的图像。

使用 Java 从文档中提取图像

用 Java 从 Word、Excel、PowerPoint 文件中提取图像

同样,所有的图像都可以从文字处理文件、电子表格、演示文稿中取出,而代码库没有改变。你必须改变什么?只是源文档路径和正确的文件扩展名。

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

从 Java 中的特定文档页面提取图像

如果您不想从整个文档中提取所有图像,而是从某个特定页面中提取。下面的代码演示了我们如何从 Java 文档的特定页面中提取图像。

// 使用 GroupDocs.Parser 从 Java 中的 Word、Excel、PowerPoint、PDF 的特定页面中提取图像
try (Parser parser = new Parser("path/document.pdf"")) {
	// 获取文档信息
	IDocumentInfo documentInfo = parser.getDocumentInfo();

	// 创建以 PNG 格式保存图像的选项
	ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
	int imageNumber = 0;

	// 遍历页面
	for (int pageIndex = 0; pageIndex < documentInfo.getPageCount(); pageIndex++) {
		// 打印页码
		System.out.println(String.format("Page %d/%d", pageIndex + 1, documentInfo.getPageCount()));

		// 迭代图像 - 忽略示例中的 NULL 检查
		for (PageImageArea image : parser.getImages(pageIndex)) {
			// 打印图像信息并保存文件
			System.out.println(String.format("R: %s, Text: %s", image.getRectangle(), image.getFileType()));
			image.save(String.format("filesPath/image_%d.jpeg", imageNumber), options);
			imageNumber++;
		}
	}
}

结论

今天,我们学习了如何从整个文档中提取图像,以及 Java 中文字处理文档、电子表格、演示文稿和 PDF 的特定页面。如果我们必须从不同文件格式的文件中提取图像,则代码没有区别。我们只需要传递正确的路径和名称。就是这样。

也可以看看