หากคุณมีเอกสารและต้องการใช้รูปภาพภายในเอกสารนั้นในเอกสารอื่นๆ ต่อไปนี้คือหนึ่งในวิธีแก้ไข ในบทความนี้ เราจะเรียนรู้วิธีการแยกรูปภาพทางโปรแกรมจากเอกสาร PDF, Excel, PowerPoint และ Word โดยใช้ Java
- การสกัดรูปภาพ Java API
- การสกัดรูปภาพจากเอกสาร PDF ใน Java
- แยกรูปภาพจากเอกสาร Word, Excel, PowerPoint ในภาษาจาวา
- แยกรูปภาพจากหน้าเฉพาะใน 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 |
เอกสารพกพา | |
อีเมล | 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
- ยกตัวอย่างวัตถุคลาส Parser
- เรียกใช้เมธอด getImages ของคลาส Parser เพื่อรับรูปภาพทั้งหมด
- วนซ้ำบนภาพโดยใช้ PageImageArea
- บันทึกภาพโดยใช้วิธีการบันทึกของ 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 โดยใช้รหัสด้านบน
แยกรูปภาพจากไฟล์ 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 ในภาษาจาวา ไม่มีความแตกต่างในรหัสหากเราต้องแยกรูปภาพจากไฟล์ที่มีรูปแบบไฟล์ต่างกัน เราแค่ต้องผ่านเส้นทางและชื่อที่ถูกต้อง แค่นั้นแหละ.