หากคุณมีเอกสารและต้องการใช้รูปภาพภายในเอกสารนั้นในเอกสารอื่นๆ ต่อไปนี้คือหนึ่งในวิธีแก้ไข ในบทความนี้ เราจะเรียนรู้วิธีการแยกรูปภาพทางโปรแกรมจากเอกสาร PDF, Excel, PowerPoint และ Word โดยใช้ Java

แยกรูปภาพจากเอกสารใน Java

การสกัดรูปภาพ Java API

แยกวิเคราะห์เอกสารและแยกข้อมูลในภาษาจาวา

สำหรับการดึงรูปภาพ เราจะใช้ 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, หม้อ, POTX, POTM, ODP, OTP
เอกสารพกพา PDF
อีเมล EML, EMLX, ผงชูรส
หอจดหมายเหตุ รหัสไปรษณีย์

ก่อนที่คุณจะเริ่มด้วยตัวอย่างด้านล่าง เราขอแนะนำให้ตั้งค่าสภาพแวดล้อมโดยดาวน์โหลดเวอร์ชันล่าสุดของเอกสารที่แยกวิเคราะห์ Java API จาก ส่วนการดาวน์โหลด หรือคุณอาจตั้งค่าต่อไปนี้ในแอปพลิเคชันจาวาที่ใช้ 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

// แยกรูปภาพจากเอกสาร Word, Excel, PowerPoint, PDF โดยทางโปรแกรมโดยใช้ 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

แยกรูปภาพจากไฟล์ 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

// แยกรูปภาพจากหน้าเฉพาะของ 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 ในตัวอย่าง
		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 ในภาษาจาวา ไม่มีความแตกต่างในรหัสหากเราต้องแยกรูปภาพจากไฟล์ที่มีรูปแบบไฟล์ต่างกัน เราแค่ต้องผ่านเส้นทางและชื่อที่ถูกต้อง แค่นั้นแหละ.

ดูสิ่งนี้ด้วย