Apache POI PPT - स्लाइड लेआउट

पिछले अध्याय में, आपने देखा है कि खाली स्लाइड कैसे बनाते हैं और इसमें स्लाइड कैसे जोड़ते हैं। इस अध्याय में, आप सीखेंगे कि उपलब्ध स्लाइड की सूची कैसे प्राप्त करें, और विभिन्न लेआउट के साथ स्लाइड कैसे बनाएं।

उपलब्ध स्लाइड लेआउट

PowerPoint प्रस्तुतियों में स्लाइड लेआउट होते हैं, और आप स्लाइड को संपादित करने के लिए एक वांछित लेआउट चुन सकते हैं। सबसे पहले, हमें उपलब्ध सभी स्लाइड लेआउट की सूची का पता लगाएं।

  • विभिन्न स्लाइड स्वामी हैं और प्रत्येक स्लाइड मास्टर में, कई स्लाइड लेआउट हैं।

  • आप स्लाइड मास्टर्स की सूची का उपयोग करके प्राप्त कर सकते हैं getSlideMasters() की विधि XMLSlideShow कक्षा।

  • आप प्रत्येक स्लाइड मास्टर से स्लाइड लेआउट की सूची प्राप्त कर सकते हैं getSlideLayouts() की विधि XSLFSlideMaster कक्षा।

  • आप का उपयोग करके लेआउट ऑब्जेक्ट से स्लाइड लेआउट का नाम प्राप्त कर सकते हैं getType() की विधि XSLFSlideLayout कक्षा।

Note- ये सभी कक्षाएं org.poi.xslf.usermodel पैकेज की हैं।

पीपीटी में उपलब्ध स्लाइड लेआउट की सूची प्राप्त करने के लिए नीचे दिया गया पूरा कार्यक्रम है -

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

ऊपर दिए गए Java कोड को इस तरह सेव करें SlideLayouts.java , और उसके बाद कमांड प्रॉम्प्ट से इसे संकलित और निष्पादित करें -

$javac SlideLayouts.java
$java SlideLayouts

यह निम्नलिखित आउटपुट उत्पन्न करने के लिए संकलित और निष्पादित करेगा -

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

नीचे दिखाए गए कुछ नमूना स्लाइड लेआउट MS-Office 360, 2013 संस्करण के साथ उपलब्ध हैं।

शीर्षक लेआउट

शीर्षक लेआउट का उपयोग कर पीपीटी में स्लाइड बनाएं। नीचे दिए गए चरणों का पालन करें -

Step 1 - Instantiating द्वारा एक खाली प्रस्तुति बनाएँ XMLSlideShow नीचे दिखाया गया है।

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - स्लाइड मास्टर्स की सूची का उपयोग कर प्राप्त करें getSlideMasters()तरीका। इसके बाद, नीचे दिखाए गए अनुसार इंडेक्स का उपयोग करके वांछित स्लाइड मास्टर का चयन करें।

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

यहां हम डिफ़ॉल्ट स्लाइड मास्टर प्राप्त कर रहे हैं जो स्लाइड मास्टर्स सरणी के 0 वें स्थान पर है।

Step 3 - का उपयोग कर वांछित लेआउट प्राप्त करें getLayout() की विधि XSLFSlideMasterकक्षा। यह विधि एक पैरामीटर को स्वीकार करती है, जहाँ आपको एक स्थिर चर को पास करना होता हैSlideLayoutclass, जो हमारे वांछित लेआउट का प्रतिनिधित्व करता है। इस वर्ग में कई चर हैं जहां प्रत्येक चर स्लाइड लेआउट का प्रतिनिधित्व करता है।

नीचे दिया गया कोड स्निपेट दिखाता है कि शीर्षक लेआउट कैसे बनाया जाए -

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

Step 4 - पैरामीटर के रूप में एक स्लाइड लेआउट ऑब्जेक्ट पास करके एक नई स्लाइड बनाएं।

XSLFSlide slide = ppt.createSlide(titleLayout);

Step 5 - का उपयोग कर एक प्लेसहोल्डर का चयन करें getPlaceholder() की विधि XSLFSlideकक्षा। यह विधि पूर्णांक पैरामीटर को स्वीकार करती है। पास करके0 यह करने के लिए, आप मिल जाएगा XSLFTextShapeऑब्जेक्ट, जिसके उपयोग से आप स्लाइड के शीर्षक पाठ क्षेत्र तक पहुँच सकते हैं। सेटटेक्स्ट () विधि का उपयोग करके शीर्षक सेट करें जैसा कि नीचे दिखाया गया है।

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

नीचे दिए गए एक प्रस्तुति में शीर्षक लेआउट के साथ एक स्लाइड बनाने के लिए पूरा कार्यक्रम है -

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

ऊपर दिए गए Java कोड को TitleLayout.java के रूप में सहेजें, और फिर इसे कमांड प्रॉम्प्ट से संकलित और निष्पादित करें -

$javac TitleLayout.java
$java TitleLayout

यह निम्नलिखित आउटपुट उत्पन्न करने के लिए संकलित और निष्पादित करेगा।

slide created successfully

नव जोड़ा शीर्षक लेआउट स्लाइड के साथ पीपीटी दस्तावेज़ निम्नानुसार दिखाई देता है -

शीर्षक और सामग्री लेआउट

एक शीर्षक और सामग्री लेआउट का उपयोग कर पीपीटी में स्लाइड बनाएं। नीचे दिए गए चरणों का पालन करें।

Step 1 - Instantiating द्वारा एक खाली प्रस्तुति बनाएँ XMLSlideShow नीचे दिखाया गया है।

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - स्लाइड मास्टर्स की सूची का उपयोग कर प्राप्त करें getSlideMasters()तरीका। नीचे दिए गए सूचकांक के अनुसार वांछित स्लाइड मास्टर का चयन करें।

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

यहां हमें डिफ़ॉल्ट स्लाइड मास्टर मिल रहा है जो स्लाइड मास्टर्स सरणी के 0 वें स्थान पर है।

Step 3 - का उपयोग कर वांछित लेआउट प्राप्त करें getLayout() की विधि XSLFSlideMasterकक्षा। यह विधि एक पैरामीटर को स्वीकार करती है, जहाँ आपको एक स्थिर चर को पास करना होता हैSlideLayoutवर्ग जो हमारे वांछित लेआउट का प्रतिनिधित्व करता है। इस वर्ग में कई चर हैं जो स्लाइड लेआउट का प्रतिनिधित्व करते हैं।

निम्न कोड स्निपेट दिखाता है कि शीर्षक और सामग्री लेआउट कैसे बनाया जाए -

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

Step 4 - पैरामीटर के रूप में स्लाइड लेआउट ऑब्जेक्ट को पास करके एक नई स्लाइड बनाएं।

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

Step 5 - का उपयोग कर एक प्लेसहोल्डर का चयन करें getPlaceholder() की विधि XSLFSlideकक्षा। यह विधि पूर्णांक पैरामीटर को स्वीकार करती है। पास करके1 यह करने के लिए, आप मिल जाएगा XSLFTextShapeऑब्जेक्ट, जिसके उपयोग से आप स्लाइड के सामग्री क्षेत्र तक पहुंच सकते हैं। सेटटेक्स्ट () विधि का उपयोग करके शीर्षक सेट करें जैसा कि नीचे दिखाया गया है।

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

Step 6 - का उपयोग कर स्लाइड में मौजूदा पाठ को साफ़ करें clearText() की विधि XSLFTextShape कक्षा।

body.clearText();

Step 7 - का उपयोग कर नया पैराग्राफ जोड़ें addNewTextParagraph()तरीका। अब पैराग्राफ का उपयोग करके एक नया पाठ रन जोड़ेंaddNewTextRun()तरीका। अब पाठ चलाने के लिए, का उपयोग करके पाठ जोड़ेंsetText() नीचे दिखाए अनुसार विधि।

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

नीचे दिए गए एक प्रस्तुति में शीर्षक लेआउट के साथ एक स्लाइड बनाने के लिए पूरा कार्यक्रम है -

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

ऊपर दिए गए Java कोड को इस तरह सेव करें TitleLayout.java, और उसके बाद कमांड प्रॉम्प्ट से इसे संकलित और निष्पादित करें -

$javac TitleLayout.java
$java TitleLayout

यह निम्नलिखित आउटपुट उत्पन्न करने के लिए संकलित और निष्पादित करेगा -

slide created successfully

नव जोड़ा शीर्षक लेआउट स्लाइड के साथ पीपीटी दस्तावेज़ निम्नानुसार दिखाई देता है -

उसी तरह, आप अलग-अलग लेआउट के साथ स्लाइड भी बना सकते हैं।