ในบล็อกโพสต์ก่อนหน้านี้ เราได้สำรวจ Apache POI XSLF API สำหรับ [การสร้างและอัปเดตไฟล์ Microsoft PowerPoint PPTX ด้วย Java] Apache POI สำหรับ Java ช่วยให้คุณทำงานกับไฟล์ PPT และ PPTX จากภายในแอปพลิเคชัน Java ของคุณโดยไม่ต้องเข้าไปดูรายละเอียดรูปแบบไฟล์ภายในของสิ่งเหล่านี้ ในบทความนี้ เราจะอธิบายรายละเอียดว่า Apache POI API สามารถใช้แทรกรูปภาพใน PPTX ด้วย Java ได้อย่างไร เราจะดูวิธีการอ่านข้อมูลรูปภาพจากไฟล์ PPTX โดยใช้ Java
ความต้องการของระบบ
ก่อนที่คุณจะเริ่มต้น ตรวจสอบให้แน่ใจว่าระบบของคุณตรงตามข้อกำหนดต่อไปนี้
- JDK – Java SE 2 JDK 1.5 หรือสูงกว่า
- หน่วยความจำ – แรม 1 GB
- ระบบปฏิบัติการ – Windows/ Linux/ Mac OS
การติดตั้ง Apache POI สำหรับ Java
คุณจะต้องมีสภาพแวดล้อมการพัฒนา Java เช่น Eclipse, IntelliJ IDEA หรือ IDE อื่นๆ ที่คุณยินดีใช้เพื่อทำงานกับไลบรารี Apache POI ในแอปพลิเคชันของคุณ ถัดไปคือการเพิ่มการพึ่งพา Apache POI Maven ในไฟล์ pom.xml ของแอปพลิเคชันของคุณดังที่แสดงด้านล่าง
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.23.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version>
</dependency>
Java Library เพื่อเพิ่มรูปภาพลงในไฟล์ PPTX
ในขั้นตอนนี้ เราถือว่าสภาพแวดล้อมการพัฒนาของคุณพร้อมแล้ว และเราสามารถเริ่มต้นด้วยการเขียนโค้ดสำหรับการเพิ่มรูปภาพลงในไฟล์งานนำเสนอ PowerPoint ซึ่งทำได้โดยใช้เมธอด createPicture() ของคลาส XSLFSlide การแทรกรูปภาพลงในสไลด์ใน PowerPoint มีขั้นตอนต่อไปนี้
- สร้างอินสแตนซ์ของคลาส XMLSlideShow
- เพิ่มสไลด์ลงในงานนำเสนอโดยการเรียกเมธอด createSlide บนอินสแตนซ์การนำเสนอจากขั้นตอนที่ 1
- โหลดรูปภาพจากไฟล์เป็นอาร์เรย์ไบต์และเพิ่มลงในอินสแตนซ์ XSLFPictureData
- เรียกใช้เมธอด createPicture บนอินสแตนซ์ของสไลด์
- บันทึกงานนำเสนอไปยังเอาต์พุต
ตัวอย่างรหัสต่อไปนี้สาธิตขั้นตอนเหล่านี้
//creating a presentation
XMLSlideShow pptx = new XMLSlideShow();
//creating a slide in it
XSLFSlide slide = pptx.createSlide();
//reading an image
File image = new File("fileformat.png");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
//adding the image to the presentation
XSLFPictureData idx = pptx.addPicture(picture, PictureType.PNG);
//creating a slide with given picture on it
XSLFPictureShape pic = slide.createPicture(idx);
//creating a file object
File file = new File("imagetopresentation.pptx");
FileOutputStream out = new FileOutputStream(file);
//saving the changes to a file
pptx.write(out);
out.close();
อ่านข้อมูลรูปภาพจากไฟล์ PPTX
ด้วย Apache POI API สำหรับ Java คุณสามารถอ่านข้อมูลของรูปภาพทั้งหมดจากภายใน ไฟล์ PPTX ได้โดยใช้เมธอด getPictureData() ของคลาส XMLSlideShow โค้ดตัวอย่างต่อไปนี้สาธิตการทำงานนี้โดยการอ่านรูปภาพจากการนำเสนอ
//open an existing presentation
File file = new File("imagetopresentation.pptx");
XMLSlideShow pptx = new XMLSlideShow(new FileInputStream(file));
//reading all the images from the presentation
for(XSLFPictureData data : pptx.getPictureData()){
byte[] bytes = data.getData();
String fileName = data.getFileName();
PictureType pictureFormat = data.getType();
System.out.println("picture name: " + fileName);
System.out.println("picture format: " + pictureFormat);
}
//saving the changes to a file
FileOutputStream out = new FileOutputStream(file);
pptx.write(out);
out.close();
บทสรุป
ส่วนประกอบ Apache POI สำหรับการทำงานกับไฟล์การนำเสนอ PowerPoint ช่วยให้คุณสามารถแทรกรูปภาพในไฟล์ PowerPoint PPT และ PPTX จากภายในแอปพลิเคชัน Java ของคุณ นอกจากนี้ยังช่วยให้คุณอ่านข้อมูลรูปภาพจากรูปภาพบนสไลด์ได้อีกด้วย ในบล็อกที่กำลังจะมีขึ้น เราจะสาธิตการใช้งานส่วนประกอบ Apache POI Java สำหรับการทำงานกับงานนำเสนอ PowerPoint เพิ่มเติม ดังนั้นคอยติดตาม