ตัวอย่างโคด
- ไฟล์แรก
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.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
public class MergeFirstFilePowerPoint {
public static void main(String[] args) {
try {
// path ของไฟล์
String fileName = "C:\\poi\\MergeFirstFilePowerPoint.pptx";
// บันทึกเอกสารไว้ในระบบตาม path ที่ระบุ
FileOutputStream out = new FileOutputStream(fileName);
// สร้างภาพนิ่งเปล่าๆ
XMLSlideShow ppt = new XMLSlideShow();
// ดึงค่า object ของ 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("First PowerPoint");
// ดึงค่า place holder ตัวที่สอง
XSLFTextShape body = slide.getPlaceholder(1);
body.clearText();
// ใส่ เนื้อหาใน body
XSLFTextParagraph paragraph = body.addNewTextParagraph();
XSLFTextRun text = paragraph.addNewTextRun();
text.setText("First Text Color.");
text.setFontSize(50);
text.setFontColor(java.awt.Color.red);
ppt.write(out);
out.close();
System.out.println("slide created successfully");
} catch (Exception e) {
e.printStackTrace();
}
}
}
- ไฟล์ที่สอง
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.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;
public class MergeSecondFilePowerPoint {
public static void main(String[] args) {
try {
// path ของไฟล์
String fileName = "C:\\poi\\MergeSecondFilePowerPoint.pptx";
// บันทึกเอกสารไว้ในระบบตาม path ที่ระบุ
FileOutputStream out = new FileOutputStream(fileName);
// สร้างภาพนิ่งเปล่าๆ
XMLSlideShow ppt = new XMLSlideShow();
// ดึงค่า object ของ 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("Second PowerPoint");
// ดึงค่า place holder ตัวที่สอง
XSLFTextShape body = slide.getPlaceholder(1);
body.clearText();
// ใส่ เนื้อหาใน body
XSLFTextParagraph paragraph = body.addNewTextParagraph();
XSLFTextRun text = paragraph.addNewTextRun();
text.setText("Second Text Color.");
text.setFontSize(50);
text.setFontColor(java.awt.Color.BLUE);
ppt.write(out);
out.close();
System.out.println("slide created successfully");
} catch (Exception e) {
e.printStackTrace();
}
}
}
- การรวม slide
package com.java.poi.powerpoint;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
public class MergeFilePowerPoint {
public static void main(String[] args) {
try {
// path ของไฟล์
String fileName = "C:\\poi\\MergeFilePowerPoint.pptx";
// บันทึกเอกสารไว้ในระบบตาม path ที่ระบุ
FileOutputStream out = new FileOutputStream(fileName);
// สร้างภาพนิ่งเปล่าๆ
XMLSlideShow ppt = new XMLSlideShow();
// path ไฟล์เก่าที่จะทำการรวม slide
String file1 = "C:\\poi\\MergeFirstFilePowerPoint.pptx";
String file2 = "C:\\poi\\MergeSecondFilePowerPoint.pptx";
String[] inputs = {file1, file2};
for(String arg : inputs){
FileInputStream inputstream = new FileInputStream(arg);
XMLSlideShow src = new XMLSlideShow(inputstream);
for(XSLFSlide srcSlide : src.getSlides()){
// ทำการรวม slide
ppt.createSlide().importContent(srcSlide);
}
}
ppt.write(out);
out.close();
System.out.println("slide created successfully");
} catch (Exception e) {
e.printStackTrace();
}
}
}
ไฟล์ที่ถูกสร้าง
ผลลัพธ์ที่ได้
ไฟล์แรก
ไฟล์ที่สอง
รวม slide




0 comments:
Post a Comment