Apache POI HSLF
Java Library สำหรับ Microsoft® รูปแบบไฟล์การนำเสนอ PPT
เพิ่มสไลด์และรูปภาพในการนำเสนอ แปลงไฟล์ PPT ด้วย Java API แบบโอเพ่นซอร์สฟรี
Apache POI HSLF คืออะไร
Apache POI HSLF เป็นการนำ Java ไปใช้จริงสำหรับการอ่าน สร้าง แก้ไข หรือแสดงงานนำเสนอ PowerPoint มีวิธีการอ่าน สร้าง หรือแก้ไขรูปแบบไฟล์ PPT ของงานนำเสนอ PowerPoint รองรับการดึงข้อมูล เช่น ข้อความ รูปภาพ เสียง วัตถุฝังตัว และอื่นๆ อีกมากมายจากงานนำเสนอ PowerPoint
นอกจากนี้ยังรองรับการวาดรูปร่างบนสไลด์ การเพิ่มไฮเปอร์ลิงก์ ตาราง รูปภาพ การปรับแต่งส่วนหัวและส่วนท้าย การสร้างรายการหัวข้อย่อย การดึงเสียงที่ฝังไว้ และอื่นๆ อีกมากมาย
เริ่มต้นใช้งาน Apache POI HSLF
ก่อนอื่น คุณต้องมี Java Development Kit (JDK) ติดตั้งอยู่ในระบบของคุณ หากคุณมีอยู่แล้ว ให้ไปที่หน้าดาวน์โหลดของ Apache POI เพื่อรับเวอร์ชันเสถียรล่าสุดในไฟล์เก็บถาวร แยกเนื้อหาของไฟล์ ZIP ในไดเร็กทอรีใดๆ จากตำแหน่งที่ไลบรารีที่จำเป็นสามารถเชื่อมโยงกับโปรแกรม Java ของคุณได้ นั้นคือทั้งหมด!
การอ้างอิง Apache POI ในโปรเจ็กต์ Java ที่ใช้ Maven นั้นง่ายกว่า สิ่งที่คุณต้องมีคือเพิ่มการพึ่งพาต่อไปนี้ใน pom.xml ของคุณและให้ IDE ดึงข้อมูลและอ้างอิงไฟล์ Apache POI Jar
Apache POI Maven Dependency
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.1.0</version>
</dependency>
สร้าง PPT ใหม่หรือแก้ไขงานนำเสนอที่มีอยู่แบบไดนามิก
Apache POI HSLF ช่วยให้โปรแกรมเมอร์สร้างงานนำเสนอ PowerPoint ใหม่ในรูปแบบไฟล์ PPT นักพัฒนายังสามารถแปลงงานนำเสนอที่มีอยู่ได้ตามความต้องการ API ยังรองรับคุณสมบัติในการดึงข้อมูล เช่น ข้อความ รูปภาพ เสียง วัตถุฝังตัว และอื่นๆ จากงานนำเสนอ PowerPoint
สร้างไฟล์ PPT - Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slide.ppt"));
// create a new slide show
HSLFSlideShow xmlSlideShow = new HSLFSlideShow();
// save file
xmlSlideShow.write(fileOutputStream);
เพิ่มสไลด์ รูปภาพ และปรับแต่งส่วนหัวและส่วนท้ายให้กับ PPT
นักพัฒนาสามารถเพิ่มสไลด์ใหม่และแก้ไขสไลด์ที่มีอยู่ได้อย่างง่ายดายตามความต้องการของตนเองภายในงานนำเสนอ PPT โดยใช้ Apache HSLF API นักพัฒนาสามารถเพิ่มส่วนหัวและส่วนท้ายที่กำหนดเองลงในงานนำเสนอได้ นอกจากนี้ยังให้การสนับสนุนอย่างเต็มที่สำหรับการเพิ่มชื่อเรื่องสำหรับสไลด์ การสร้างสไลด์ด้วยเค้าโครงที่กำหนดไว้ล่วงหน้า การทำงานกับพื้นหลังของสไลด์/รูปร่าง และอื่นๆ อีกมากมาย
แทรกรูปภาพใน PPT ผ่าน Java
- สร้างไฟล์ PPT ใหม่โดยใช้ FileOutputStream และส่งผ่านอินสแตนซ์ของไฟล์ใหม่ () ที่มีชื่อไฟล์เอาต์พุตเป็นสตริง
- เพิ่มสไลด์โชว์ใหม่โดยใช้วิธีการ HSLFSlideShow()
- เพิ่มสไลด์ใหม่โดยใช้ createSlide() method
- รับไบต์ของรูปภาพโดยใช้เมธอด IOUtils.toByteArray() และส่งภาพของคุณผ่านเมธอด FileInputStream()
- เพิ่มรูปภาพลงในสไลด์ของคุณโดยใช้วิธี hslfSlideShow.addPicture(รูปภาพ HSLFPictureData.PictureType.PNG) วิธีการรับไบต์รูปภาพและประเภทรูปภาพเป็นอาร์กิวเมนต์
- เขียนและบันทึกไฟล์
เพิ่มรูปภาพใน PPT - Java
// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("AddImage.ppt"));
// create a new slide show
HSLFSlideShow hslfSlideShow = new HSLFSlideShow();
// create slide
HSLFSlide slide = hslfSlideShow.createSlide();
// load image
byte[] picture = IOUtils.toByteArray(new FileInputStream(new File("apache-poi-logo-min.png")));
// add image
HSLFPictureData hslfPictureData = hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG);
HSLFPictureShape pictureShape = slide.createPicture(hslfPictureData);
// save file
hslfSlideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();
แปลงสไลด์เป็นรูปแบบรูปภาพโดยใช้ Java API
Apache POI HSLF API ช่วยให้นักพัฒนาซอฟต์แวร์สามารถแปลงแต่ละสไลด์ของงานนำเสนอ PowerPoint เป็นรูปแบบไฟล์รูปภาพภายในแอปพลิเคชัน Java ของตนได้ คุณสามารถจับภาพสไลด์ลงในวัตถุ java.awt.Graphics2D (หรืออื่น ๆ ) และทำให้เป็นอนุกรมในรูปแบบ PNG หรือ JPEG รูปภาพที่รองรับอาจเป็น JPEG, PNG, DIB และอื่นๆ
แปลง PPT เป็นรูปภาพ - Java
//open an existing PPT file
HSLFSlideShow hslfSlideShow = new HSLFSlideShow(new FileInputStream(new File("PPTtoImage.ppt")));
// get dimensions
Dimension pgsize = hslfSlideShow.getPageSize();
java.util.List slide = hslfSlideShow.getSlides();
for (int i = 0; i < slide.size(); i++) {
BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
Graphics2D graphics = img.createGraphics();
// clear the drawing area
graphics.setPaint(Color.white);
graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
// render
slide.get(i).draw(graphics);
// create image
FileOutputStream out = new FileOutputStream("PPTtoImage.png");
javax.imageio.ImageIO.write(img, "png", out);
out.close();
}