Apache-poi-ppt-slide-layouts
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ドキュメントは、次のように表示されます-
タイトルとコンテンツのレイアウト
タイトルとコンテンツレイアウトを使用して、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ドキュメントは、次のように表示されます-
同様に、異なるレイアウトのスライドを作成することもできます。