Apache-poi-ppt-slide-layouts

提供:Dev Guides
移動先:案内検索

Apache POI PPT-スライドレイアウト

前の章では、空のスライドを作成する方法と、スライドを追加する方法を見てきました。 この章では、利用可能なスライドのリストを取得する方法と、さまざまなレイアウトでスライドを作成する方法を学びます。

利用可能なスライドレイアウト

PowerPointプレゼンテーションにはスライドレイアウトがあり、目的のレイアウトを選択してスライドを編集できます。 まず、利用可能なすべてのスライドレイアウトのリストを調べてみましょう。

  • さまざまなスライドマスターがあり、各スライドマスターにはいくつかのスライドレイアウトがあります。
  • XMLSlideShow クラスの* getSlideMasters()*メソッドを使用して、スライドマスターのリストを取得できます。
  • XSLFSlideMaster クラスの* getSlideLayouts()*メソッドを使用して、各スライドマスターからスライドレイアウトのリストを取得できます。
  • XSLFSlideLayout クラスの* getType()*メソッドを使用して、レイアウトオブジェクトからスライドレイアウトの名前を取得できます。

注意-これらのクラスはすべて_org.poi.xslf.usermodel_パッケージに属します。

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

上記の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エディションで使用可能なサンプルスライドレイアウトの一部を示します。

サンプルスライドレイアウト

タイトルレイアウト

タイトルレイアウトを使用してPPTでスライドを作成します。 以下の手順に従ってください-

ステップ1 *-以下に示すように *XMLSlideShow クラスをインスタンス化して、空のプレゼンテーションを作成します。

XMLSlideShow ppt = new XMLSlideShow();

ステップ2 *- getSlideMasters()*メソッドを使用して、スライドマスターのリストを取得します。 その後、下に示すようにインデックスを使用して目的のスライドマスターを選択します。

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

ここでは、スライドマスターアレイの0 ^ th ^位置にあるデフォルトのスライドマスターを取得しています。

ステップ3 *- *XSLFSlideMaster クラスの* getLayout()メソッドを使用して、目的のレイアウトを取得します。 このメソッドは、目的のレイアウトを表す *SlideLayoutclass の静的変数のいずれかを渡す必要があるパラメーターを受け入れます。 このクラスにはいくつかの変数があり、各変数はスライドレイアウトを表します。

以下に示すコードスニペットは、タイトルレイアウトを作成する方法を示しています-

XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
  • ステップ4 *-パラメーターとしてスライドレイアウトオブジェクトを渡すことにより、新しいスライドを作成します。
XSLFSlide slide = ppt.createSlide(titleLayout);

ステップ5 *- *XSLFSlide クラスの* getPlaceholder()メソッドを使用してプレースホルダーを選択します。 このメソッドは整数パラメーターを受け入れます。 *0 を渡すと、 XSLFTextShape オブジェクトが取得されます。これを使用して、スライドのタイトルテキスト領域にアクセスできます。 以下に示すようにsetText()メソッドを使用してタイトルを設定します。

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

新しく追加されたタイトルレイアウトスライドを含むPPTドキュメントは、次のように表示されます-

TitleLayOut

タイトルとコンテンツのレイアウト

タイトルとコンテンツレイアウトを使用して、PPTでスライドを作成します。 以下の手順に従ってください。

ステップ1 *-以下に示すように *XMLSlideShow クラスをインスタンス化して、空のプレゼンテーションを作成します。

XMLSlideShow ppt = new XMLSlideShow();

ステップ2 *- getSlideMasters()*メソッドを使用して、スライドマスターのリストを取得します。 以下に示すインデックスを使用して、目的のスライドマスターを選択します。

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

ここでは、スライドマスターアレイの0番目の場所にあるデフォルトのスライドマスターを取得しています。

ステップ3 *- *XSLFSlideMaster クラスの* getLayout()メソッドを使用して、目的のレイアウトを取得します。 このメソッドは、目的のレイアウトを表す *SlideLayout クラスの静的変数の1つを渡す必要があるパラメーターを受け入れます。 このクラスには、スライドレイアウトを表すいくつかの変数があります。

次のコードスニペットは、タイトルとコンテンツのレイアウトを作成する方法を示しています-

XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
  • ステップ4 *-スライドレイアウトオブジェクトをパラメーターとして渡すことにより、新しいスライドを作成します。
XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);

ステップ5 *- *XSLFSlide クラスの* getPlaceholder()メソッドを使用してプレースホルダーを選択します。 このメソッドは整数パラメーターを受け入れます。 *1 を渡すと、 XSLFTextShape オブジェクトが取得され、これを使用してスライドのコンテンツ領域にアクセスできます。 以下に示すようにsetText()メソッドを使用してタイトルを設定します。

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

ステップ6 *- *XSLFTextShape クラスの* clearText()*メソッドを使用して、スライド内の既存のテキストをクリアします。

body.clearText();

ステップ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

新しく追加されたタイトルレイアウトスライドを含むPPTドキュメントは、次のように表示されます-

image

同様に、異なるレイアウトのスライドを作成することもできます。