如果您有一个文档,并且想在其他文档中使用该文档中的图像,这里是其中一种解决方案。在本文中,我们将学习使用 Java 以编程方式从 PDF、Excel、PowerPoint 和 Word 文档中提取图像。
图像提取 Java API
对于图像的提取,我们将使用 GroupDocs.Parser for Java。此 Java API 支持文档解析和从文字处理文档**、电子表格、演示文稿、档案中提取图像、文本和元数据 ,** 和 email 文件。以下是 Java API 支持的用于图像提取的文档格式。
文件類型 | 文件格式 |
---|---|
文字處理文件 | DOC、DOCX、DOCM、DOT、DOTX、DOTM、ODT、OTT、RTF |
電子表格 | XLS、XLSX、XLSM、XLSB、XLT、XLTX、XLTM、ODS、OTS、XLA、XLAM、NUMBERS |
演講 | PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP |
便攜式文件 | |
電子郵件 | EML、EMLX、MSG |
檔案 | ZIP |
在开始下面的示例之前,我建议通过从 下载部分 下载最新版本的文档解析 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 文档中获取所有图像。
- 实例化 Parser 类对象。
- 调用 Parser 类的 getImages 方法获取所有图像。
- 使用 PageImageArea 迭代图像。
- 使用 PageImageArea 的 save 方法保存图像。
完成。请参阅下面的完整代码。提取的图像可以保存为 BMP、GIF、JPEG、PNG 和 WebP 格式。
// 使用 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 从 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 的特定页面。如果我们必须从不同文件格式的文件中提取图像,则代码没有区别。我们只需要传递正确的路径和名称。就是这样。