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.