ในบล็อกโพสต์ก่อนหน้านี้ เราได้สำรวจ 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 เพิ่มเติม ดังนั้นคอยติดตาม