اگر سندی دارید و می خواهید از تصاویر داخل آن سند در برخی اسناد دیگر استفاده کنید، یکی از راه حل ها در اینجا آمده است. در این مقاله به آموزش استخراج برنامه‌نویسی تصاویر از اسناد PDF، Excel، PowerPoint و Word با استفاده از 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، NUMBERS
ارائه ها PPT، PPTX، PPTM، PPS، PPSX، PPSM، POT، POTX، POTM، ODP، OTP
اسناد قابل حمل PDF
ایمیل ها EML، EMLX، MSG
آرشیو ZIP

قبل از شروع با مثال‌های زیر، توصیه می‌کنم محیط را با دانلود آخرین نسخه API تجزیه اسناد Java از بخش دانلودها تنظیم کنید یا می‌توانید تنظیمات زیر را در برنامه‌های Java مبتنی بر maven خود تنظیم کنید:

<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>

استخراج تصاویر از اسناد PDF در Java

سند PDF برای استخراج تصاویر

این مراحل ساده را برای دریافت همه تصاویر از سند PDF دنبال کنید.

  1. شیء کلاس Parser را نمونه سازی کنید.
  2. برای دریافت تمام تصاویر، متد getImages کلاس Parser را فراخوانی کنید.
  3. با استفاده از PageImageArea روی تصاویر تکرار کنید.
  4. تصاویر را با استفاده از روش ذخیره PageImageArea ذخیره کنید.

انجام شد. کد کامل را در زیر مشاهده کنید. تصاویر استخراج شده را می توان در فرمت های BMP، GIF، JPEG، PNG و WebP ذخیره کرد.

// استخراج تصاویر از اسناد ورد، اکسل، پاورپوینت، پی دی اف به صورت برنامه نویسی با استفاده از GroupDocs.Parser for Java
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

به طور مشابه، تمام تصاویر را می توان از فایل های پردازش کلمه، صفحات گسترده، ارائه ها با پایه کد بدون تغییر خارج کرد. چه چیزی را باید تغییر دهید؟ فقط مسیر سند منبع و پسوند فایل مناسب.

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 استخراج کنیم.

// استخراج تصاویر از صفحه خاصی از Word، Excel، PowerPoint، PDF در Java با استفاده از GroupDocs.Parser
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-Checking در مثال ها
		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++;
		}
	}
}

نتیجه

امروز یاد گرفتیم که چگونه تصاویر را از کل سند و صفحه خاص اسناد پردازش کلمه، صفحات گسترده، ارائه ها و PDF در Java استخراج کنیم. اگر بخواهیم تصاویر را از فایل های فرمت های مختلف فایل استخراج کنیم، تفاوتی در کد وجود ندارد. فقط باید مسیر و نام درست را طی کنیم. خودشه.

همچنین ببینید