Apache POI PPT - Slayt Düzenleri

Önceki bölümde, boş slaytların nasıl oluşturulacağını ve bunlara nasıl slayt ekleneceğini gördünüz. Bu bölümde, mevcut slaytların listesini nasıl alacağınızı ve farklı düzenlerle bir slayt oluşturmayı öğreneceksiniz.

Mevcut Slayt düzenleri

PowerPoint sunularının slayt düzenleri vardır ve bir slaytı düzenlemek için istediğiniz düzeni seçebilirsiniz. Öncelikle, mevcut tüm slayt düzenlerinin listesini bulalım.

  • Farklı asıl slaytlar vardır ve her asıl slaytta birkaç slayt düzeni vardır.

  • Asıl slaytların listesini şuradan edinebilirsiniz: getSlideMasters() yöntemi XMLSlideShow sınıf.

  • Her bir asıl slayttan slayt düzenlerinin listesini şuradan edinebilirsiniz: getSlideLayouts() yöntemi XSLFSlideMaster sınıf.

  • Slayt mizanpajının adını mizanpaj nesnesinden, getType() yöntemi XSLFSlideLayout sınıf.

Note- Tüm bu sınıflar org.poi.xslf.usermodel paketine aittir .

Aşağıda, PPT'deki mevcut slayt düzenlerinin listesini almak için eksiksiz bir program verilmiştir -

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());
         } 
      }
   }
}

Yukarıdaki Java kodunu farklı kaydedin SlideLayouts.java ve ardından komut isteminden aşağıdaki gibi derleyin ve yürütün -

$javac SlideLayouts.java
$java SlideLayouts

Aşağıdaki çıktıyı oluşturmak için derlenecek ve çalıştırılacaktır -

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

Aşağıda, MS-Office 360, 2013 sürümüyle kullanılabilen örnek slayt düzenlerinden bazıları gösterilmektedir.

Başlık Düzeni

Başlık düzenini kullanarak bir PPT'de bir slayt oluşturalım. Aşağıda verilen adımları izleyin -

Step 1 - Şunu örnekleyerek boş bir sunu oluşturun XMLSlideShow aşağıda gösterildiği gibi sınıf.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - Kullanarak asıl slaytların listesini alın getSlideMasters()yöntem. Daha sonra, aşağıda gösterildiği gibi dizini kullanarak istenen asıl slaydı seçin.

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

Burada 0 olduğu varsayılan slayt usta alıyorsanız inci slayt ustaları dizinin konumu.

Step 3 - İstediğiniz düzeni kullanarak getLayout() yöntemi XSLFSlideMastersınıf. Bu yöntem, statik değişkenlerden birini iletmeniz gereken bir parametreyi kabul eder.SlideLayoutclass, istediğimiz düzeni temsil eder. Bu sınıfta, her değişkenin bir slayt düzenini temsil ettiği birkaç değişken vardır.

Aşağıda verilen kod parçacığı, bir başlık düzeninin nasıl oluşturulacağını gösterir -

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

Step 4 - Bir slayt düzeni nesnesini parametre olarak ileterek yeni bir slayt oluşturun.

XSLFSlide slide = ppt.createSlide(titleLayout);

Step 5 - Kullanarak bir yer tutucu seçin getPlaceholder() yöntemi XSLFSlidesınıf. Bu yöntem bir tamsayı parametresini kabul eder. Geçerek0 ona, alacaksın XSLFTextShapeslaydın başlık metin alanına erişebileceğiniz nesne. Aşağıda gösterildiği gibi setText () yöntemini kullanarak başlığı ayarlayın.

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

Aşağıda, bir sunumda Başlık düzenine sahip bir slayt oluşturmak için eksiksiz bir program verilmiştir -

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();  
   }
}

Yukarıdaki Java kodunu TitleLayout.java olarak kaydedin ve ardından aşağıdaki gibi komut isteminden derleyin ve çalıştırın -

$javac TitleLayout.java
$java TitleLayout

Aşağıdaki çıktıyı oluşturmak için derlenecek ve çalıştırılacaktır.

slide created successfully

Yeni eklenen Başlık düzeni slaydına sahip PPT belgesi aşağıdaki gibi görünür -

Başlık ve içerik Düzeni

Başlık ve içerik düzenini kullanarak bir PPT'de bir slayt oluşturalım. Aşağıda verilen adımları izleyin.

Step 1 - Şunu örnekleyerek boş bir sunu oluşturun XMLSlideShow aşağıda gösterildiği gibi sınıf.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - Kullanarak asıl slaytların listesini alın getSlideMasters()yöntem. Aşağıda gösterildiği gibi dizini kullanarak istenen asıl slaydı seçin.

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

Burada asıl slayt dizisinin 0. konumunda bulunan varsayılan asıl slaydı alıyoruz.

Step 3 - İstediğiniz düzeni kullanarak getLayout() yöntemi XSLFSlideMastersınıf. Bu yöntem, statik değişkenlerden birini iletmeniz gereken bir parametreyi kabul eder.SlideLayoutİstediğimiz düzeni temsil eden sınıf. Bu sınıfta slayt düzenlerini temsil eden birkaç değişken vardır.

Aşağıdaki kod parçacığı, başlık ve içerik düzeninin nasıl oluşturulacağını gösterir -

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

Step 4 - Slayt düzeni nesnesini parametre olarak ileterek yeni bir slayt oluşturun.

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

Step 5 - Kullanarak bir yer tutucu seçin getPlaceholder() yöntemi XSLFSlidesınıf. Bu yöntem bir tamsayı parametresini kabul eder. Geçerek1 ona, alacaksın XSLFTextShapeslaydın içerik alanına erişebileceğiniz nesne. Aşağıda gösterildiği gibi setText () yöntemini kullanarak başlığı ayarlayın.

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

Step 6 - Slayttaki mevcut metni, clearText() yöntemi XSLFTextShape sınıf.

body.clearText();

Step 7 - kullanarak yeni paragraf ekleyin addNewTextParagraph()yöntem. Şimdi paragrafa yeni bir metin ekleyinaddNewTextRun()yöntem. Şimdi çalıştırılan metin için,setText() yöntemi aşağıda gösterildiği gibi.

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

Aşağıda, bir sunumda Başlık düzenine sahip bir slayt oluşturmak için eksiksiz bir program verilmiştir -

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();                
   }
}

Yukarıdaki Java kodunu farklı kaydedin TitleLayout.javave ardından komut isteminden aşağıdaki gibi derleyin ve yürütün -

$javac TitleLayout.java
$java TitleLayout

Aşağıdaki çıktıyı oluşturmak için derlenecek ve çalıştırılacaktır -

slide created successfully

Yeni eklenen Başlık düzeni slaydına sahip PPT belgesi aşağıdaki gibi görünür -

Aynı şekilde, farklı düzenlere sahip slaytlar da oluşturabilirsiniz.