Apache POI PPT - Tata Letak Slide

Di bab sebelumnya, Anda telah melihat cara membuat slide kosong dan cara menambahkan slide ke dalamnya. Di bab ini, Anda akan mempelajari cara mendapatkan daftar slide yang tersedia, dan cara membuat slide dengan tata letak berbeda.

Tata letak slide yang tersedia

Presentasi PowerPoint memiliki tata letak slide, dan Anda dapat memilih tata letak yang diinginkan untuk mengedit slide. Pertama-tama, mari kita cari tahu daftar semua tata letak slide yang tersedia.

  • Ada master slide yang berbeda dan di setiap master slide, ada beberapa tata letak slide.

  • Anda bisa mendapatkan daftar master slide menggunakan getSlideMasters() metode dari XMLSlideShow kelas.

  • Anda bisa mendapatkan daftar tata letak slide dari setiap master slide menggunakan getSlideLayouts() metode dari XSLFSlideMaster kelas.

  • Anda bisa mendapatkan nama tata letak slide dari objek tata letak menggunakan getType() metode dari XSLFSlideLayout kelas.

Note- Semua kelas ini milik paket org.poi.xslf.usermodel .

Diberikan di bawah ini adalah program lengkap untuk mendapatkan daftar tata letak slide yang tersedia di PPT -

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;

public class SlideLayouts {

   public static void main(String args[]) throws IOException {
   
      //create an empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      System.out.println("Available slide layouts:")
   
      //getting the list of all slide masters
      for(XSLFSlideMaster master : ppt.getSlideMasters()) {
   
         //getting the list of the layouts in each slide master
         for(XSLFSlideLayout layout : master.getSlideLayouts()) {
   
            //getting the list of available slides
            System.out.println(layout.getType());
         } 
      }
   }
}

Simpan kode Java di atas sebagai SlideLayouts.java , lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac SlideLayouts.java
$java SlideLayouts

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

Available slide layouts:
TITLE
PIC_TX
VERT_TX
TWO_TX_TWO_OBJ
BLANK
VERT_TITLE_AND_TX
TITLE_AND_CONTENT
TITLE_ONLY
SECTION_HEADER
TWO_OBJ
OBJ_TX

Di bawah ini adalah beberapa contoh tata letak slide yang tersedia dengan MS-Office 360 ​​edisi 2013.

Tata Letak Judul

Mari kita buat slide dalam PPT menggunakan tata letak Judul. Ikuti langkah-langkah yang diberikan di bawah ini -

Step 1 - Buat presentasi kosong dengan membuat instance XMLSlideShow kelas seperti yang ditunjukkan di bawah ini.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - Dapatkan daftar master slide menggunakan getSlideMasters()metode. Setelah itu, pilih master slide yang diinginkan menggunakan indeks seperti yang ditunjukkan di bawah ini.

XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

Di sini kita mendapatkan master slide default yang ada di lokasi ke- 0 dari array master slide.

Step 3 - Dapatkan tata letak yang diinginkan menggunakan getLayout() metode dari XSLFSlideMasterkelas. Metode ini menerima parameter di mana Anda harus melewatkan salah satu variabel statis dariSlideLayoutclass, yang mewakili tata letak yang kami inginkan. Ada beberapa variabel di kelas ini di mana setiap variabel mewakili tata letak slide.

Potongan kode yang diberikan di bawah ini menunjukkan cara membuat tata letak judul -

XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);

Step 4 - Buat slide baru dengan meneruskan objek tata letak slide sebagai parameter.

XSLFSlide slide = ppt.createSlide(titleLayout);

Step 5 - Pilih placeholder menggunakan getPlaceholder() metode dari XSLFSlidekelas. Metode ini menerima parameter integer. Dengan melewati0 untuk itu, Anda akan mendapatkan XSLFTextShapeobjek, yang digunakan untuk mengakses area teks judul slide. Setel judul menggunakan metode setText () seperti yang ditunjukkan di bawah ini.

XSLFTextShape title1 = slide.getPlaceholder(0);
//setting the title init
title1.setText("Tutorials point");

Diberikan di bawah ini adalah program lengkap untuk membuat slide dengan tata letak Judul dalam presentasi -

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

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 TitleLayout {

   public static void main(String args[]) throws IOException {
   
      //creating presentation
      XMLSlideShow ppt = new XMLSlideShow();	    	
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //get the desired slide layout 
      XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
                                                     
      //creating a slide with title layout
      XSLFSlide slide1 = ppt.createSlide(titleLayout);
      
      //selecting the place holder in it 
      XSLFTextShape title1 = slide1.getPlaceholder(0); 
      
      //setting the title init 
      title1.setText("Tutorials point");
      
      //create a file object
      File file = new File("C://POIPPT//Examples//Titlelayout.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a PPt document
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();  
   }
}

Simpan kode Java di atas sebagai TitleLayout.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac TitleLayout.java
$java TitleLayout

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut.

slide created successfully

Dokumen PPT dengan slide tata letak Judul yang baru ditambahkan muncul sebagai berikut -

Judul dan Tata Letak konten

Mari kita buat slide dalam PPT menggunakan tata letak Judul dan konten. Ikuti langkah-langkah yang diberikan di bawah ini.

Step 1 - Buat presentasi kosong dengan membuat instance XMLSlideShow kelas seperti yang ditunjukkan di bawah ini.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - Dapatkan daftar master slide menggunakan getSlideMasters()metode. Pilih master slide yang diinginkan menggunakan indeks seperti yang ditunjukkan di bawah ini.

XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

Di sini kita mendapatkan master slide default yang berada di lokasi ke-0 dari array master slide.

Step 3 - Dapatkan tata letak yang diinginkan menggunakan getLayout() metode dari XSLFSlideMasterkelas. Metode ini menerima parameter di mana Anda harus melewatkan salah satu variabel statis dariSlideLayoutkelas yang mewakili tata letak yang kami inginkan. Ada beberapa variabel di kelas ini yang mewakili tata letak slide.

Cuplikan kode berikut menunjukkan cara membuat tata letak judul dan konten -

XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);

Step 4 - Buat slide baru dengan meneruskan objek tata letak slide sebagai parameter.

XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);

Step 5 - Pilih placeholder menggunakan getPlaceholder() metode dari XSLFSlidekelas. Metode ini menerima parameter integer. Dengan melewati1 untuk itu, Anda akan mendapatkan XSLFTextShapeobjek, yang digunakan untuk mengakses area konten slide. Setel judul menggunakan metode setText () seperti yang ditunjukkan di bawah ini.

XSLFTextShape title1 = slide1.getPlaceholder(1);
//setting the title init 
title1.setText("Introduction");

Step 6 - Hapus teks yang ada di slide menggunakan clearText() metode dari XSLFTextShape kelas.

body.clearText();

Step 7 - Tambahkan paragraf baru menggunakan addNewTextParagraph()metode. Sekarang tambahkan teks baru ke paragraf menggunakanaddNewTextRun()metode. Sekarang untuk menjalankan teks, tambahkan teks menggunakansetText() metode seperti yang ditunjukkan di bawah ini.

body.addNewTextParagraph().addNewTextRun().setText("this is  my first slide body");

Diberikan di bawah ini adalah program lengkap untuk membuat slide dengan tata letak Judul dalam presentasi -

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

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 TitleAndBodyLayout {
   
   public static void main(String args[]) throws IOException {
   
      //creating presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //select a layout from specified list
      XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
      
      //creating a slide with title and content layout
      XSLFSlide slide = ppt.createSlide(slidelayout);
      //selection of title place holder
      XSLFTextShape title = slide.getPlaceholder(0);
      
      //setting the title in it
      title.setText("introduction");
      
      //selection of body placeholder
      XSLFTextShape body = slide.getPlaceholder(1);
      
      //clear the existing text in the slide
      body.clearText();
      
      //adding new paragraph
      body.addNewTextParagraph().addNewTextRun().setText("this is  my first slide body");
      
      //create a file object
      File file = new File("contentlayout.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a file
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();                
   }
}

Simpan kode Java di atas sebagai TitleLayout.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac TitleLayout.java
$java TitleLayout

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

slide created successfully

Dokumen PPT dengan slide tata letak Judul yang baru ditambahkan muncul sebagai berikut -

Dengan cara yang sama, Anda juga dapat membuat slide dengan tata letak yang berbeda.