การทำ slide ใน PowerPoint ให้เป็นรูป ด้วย Apache POI

ต่อไปนี้เป็นตัวอย่างการทำ slide ใน PowerPoint ให้เป็นรูป ด้วย Apache POI  ครับ โดยเราจะใช้ตัวหย่างก่อนหน้านั้นเรื่อง การสร้าง Link ให้ข้อความไปใน PowerPoint ด้วย Apache POI มาเป็นตัวหลัก จากนั้นก็เอา slide ทำการ export ออกมาเป็นไฟล์รูปครับ

ตัวอย่างโคด
package com.java.poi.powerpoint;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ExportImagePowerPoint {
    public static void main(String[] args) {
        try {
            // สร้างภาพนิ่งจากไฟล์ก่อนหน้านั้น
            File file=new File("C:\\poi\\LinkPowerPoint.pptx");
            XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
            
            // ดึงค่าขนาดของ slide
            Dimension pgsize = ppt.getPageSize();
            XSLFSlide[] slide = ppt.getSlides();
            BufferedImage img = null;
            for (int i = 0; i < slide.length; i++) {
               img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
               Graphics2D graphics = img.createGraphics();

               //เตรียมพื้นที่สำหรับวาด
               graphics.setPaint(Color.white);
               graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

               //แสดงภาพ
               slide[i].draw(graphics);
            }
            
            //creating an image file as output
            FileOutputStream out = new FileOutputStream("C:\\poi\\ExportImagePowerPoint.png");
            javax.imageio.ImageIO.write(img, "png", out);
            ppt.write(out);
            out.close();
            System.out.println("slide created successfully");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
ไฟล์ที่ถูกสร้าง

 ผลลัพธ์ที่ได้ 

About Nop

This is a short description in the author block about the author. You edit it by entering text in the "Biographical Info" field in the user admin panel.
    Blogger Comment

0 comments:

Post a Comment