การสร้างข้อความใน PowerPoint ด้วย Apache POI

จากที่กล่าวมาแล้วก่อนหน้านั้นว่า Apache POI คืออะไร ตอนนี้เรามาลองสร้างภาพนิ่งใน PowerPoint กันครับซึ่งหลักการการเขียน ภาพนิ่งใน PowerPointจะประกอบด้วย

  1. การสร้าง  object ของ  XMLSlideShow
  2. ดึงค่า default object ของ slide master XSLFSlideMaster จาก object ของ  XMLSlideShow
  3. ดึงค่า slide layout XSLFSlideLayout จาก slide master XSLFSlideMaster
  4. สร้าง slide XSLFSlide  จาก slide layout XSLFSlideLayout
  5. ดึงค่า XSLFTextShape จาก XSLFSlide 
  6. ดึงค่า Placeholder และกำหนดข้อความต่างๆให้ Placeholder นั้นๆ ซึ่งจำนวน Placeholder ขึ้นอยู่กับ  slide layout XSLFSlideLayout
 จากโคดตัวอย่างเราจะสร้างไฟล์ .pptx ดังนั้น ผู้เขียนจึงใช้ Package XSLF แต่หากใครจะสร้างไฟล์ .ppt เฉยๆให้เรียกใช้ Package HSLF นะครับ

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

import java.io.FileOutputStream;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class HelloPowerPoint {
    public static void main(String[] args) {
        try {
            // path ของไฟล์
            String fileName = "C:\\poi\\HelloPowerPoint.pptx";
            // บันทึกเอกสารไว้ในระบบตาม path ที่ระบุ
            FileOutputStream out = new FileOutputStream(fileName);
            // สร้างภาพนิ่งเปล่าๆ
            XMLSlideShow ppt = new XMLSlideShow();
            // ดึงค่า object ของ default slide master 
            XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
            // ดึงค่า slide layout 
            XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
            // สร้าง  slide แรก
            XSLFSlide slide = ppt.createSlide(slidelayout);
            // ดึงค่า  place holder คือการดึงค่าตำแหน่งของข้อความที่จะใส่ตาม layout นั้นๆ 
            XSLFTextShape title = slide.getPlaceholder(0);
            // ใส่ เนื้อหาใน title 
            title.setText("Hello PowerPoint");
            
            // ดึงค่า  place holder ตัวที่สอง
            XSLFTextShape body = slide.getPlaceholder(1);
            body.clearText();
            // ใส่ เนื้อหาใน body 
            body.addNewTextParagraph().addNewTextRun().setText("this is  my first slide content.");
            
            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