如果您有一個文檔,並且想在其他文檔中使用該文檔中的圖像,這裡是一種解決方案。在本文中,我們將學習使用 Java 以編程方式從 PDF、Excel、PowerPoint 和 Word 文檔中提取圖像。

從 Java 文檔中提取圖像

圖像提取 Java API

在 Java 中解析文檔和提取數據

對於圖像的提取,我們將使用 GroupDocs.Parser for Java。此 Java API 支持從文字處理文檔、電子表格、演示文稿、檔案和電子郵件文檔中解析文檔和提取圖像、文本和元數據。以下是圖像提取的 Java API 支持的文檔格式。

文件類型 文件格式
文字處理文檔 DOC、DOCX、DOCM、DOT、DOTX、DOTM、ODT、OTT、RTF
電子表格 XLS、XLSX、XLSM、XLSB、XLT、XLTX、XLTM、ODS、OTS、XLA、XLAM、數字
簡報 PPT、PPTX、PPTM、PPS、PPSX、PPSM、POT、POTX、POTM、ODP、OTP
便攜式文件 PDF
電子郵件 EML、EMLX、味精
檔案 郵編

在您開始使用下面的示例之前,我建議您通過從下載部分 下載最新版本的文檔解析 Java API 來設置環境,或者您可以在基於 maven 的 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 方法保存圖像。

完成。請參閱下面的完整代碼。提取的圖像可以保存為 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 從文檔中提取圖像

在 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 的特定頁面。如果我們必須從不同文件格式的文件中提取圖像,代碼沒有區別。我們只需要傳遞正確的路徑和名稱。而已。

也可以看看