フォーラム | 最新のWeb開発のチュートリアル
 

Apache POI PPTクイックガイド



ApacheのPOI PPT - 概要

多くの時間、ソフトウェアアプリケーションは、Microsoft Officeのファイル形式でレポートを生成する必要があります。 場合によっては、アプリケーションがあっても、入力データとしてMS- Officeファイルを受信することが期待されます。

出力としてMS Officeファイルを生成したい任意のJavaプログラマは、事前定義されたを使用して、読み取り専用そうするAPIをしなければなりません。


ApacheのPOIは何ですか?

ApacheのPOIは、プログラマが作成、変更、およびJavaプログラムを使用して、MS-Officeファイルを表示することができます人気のあるAPIです。 これは、Apache Software Foundationによって開発され、配布さオープンソースのライブラリです。 これは、ユーザーの入力データを復号化するためのクラスとメソッドが含まれているか、またはMS Officeドキュメントにファイル。


ApacheのPOIのコンポーネント

ApacheのPOIは、MS-OfficeのすべてのOLE2複合ドキュメント上で動作するようにクラスとメソッドが含まれています。 このAPIのコンポーネントのリストは以下のとおりであります:

  • POIFS(悪い難読化実装ファイルシステム):このコンポーネントは、他のすべてのPOI要素の基本的な要因です。 明示的に別のファイルを読み取るために使用されます。

  • HSSF(恐ろしいスプレッドシート形式):MS-Excelファイルの.xls形式を読み書きするために使用されます。

  • XSSF(XMLスプレッドシート形式):これは、MS-Excelでの.xlsxファイル形式に使用されます。

  • HPSF(恐ろしいプロパティセットのフォーマットは):MS-Officeファイルのプロパティセットを抽出するために使用されます。

  • HWPF(恐ろしいワープロ形式は):MS-Wordのの.doc拡張子のファイルを読み書きするために使用されます。

  • XWPF(XMLワープロ形式):MS-Wordのの拡張子.docxファイルを読み書きするために使用されます。

  • HSLF(恐ろしいスライドのレイアウト形式):読み取り、作成、およびPowerPointプレゼンテーションを編集するために使用されます。

  • HDGF(恐ろしいダイアグラムフォーマット):これは、MS-Visioのバイナリファイルのためのクラスとメソッドが含まれています。

  • HPBF(恐ろしいパブリッシャ形式):MS-Publisherファイルを読み書きするために使用されます。

このチュートリアルでは、Javaを使用してMicrosoft PowerPointプレゼンテーションで作業のプロセスをガイドします。 したがって、議論はXSLFコンポーネントに限定されています

注 :などDOC、XLS、PPT、以降のバージョン3.5としてPOIのサポートバイナリファイル形式の古いバージョン、POIは、などのdocx、PPTX、XLSX、などのMS-OfficeののOOXMLファイル形式をサポートしています


JavaのPPT APIのフレーバー

この章では、Java PowerPointのAPIとその機能の味の一部を学ぶことができます。 JavaのPPT関連のAPIを提供する多くのベンダーがあります。 それらのいくつかは、この章では考慮されています。


Java用のAsposeスライド

Java用のAsposeのスライドは、純粋にライセンスされたJavaのPPT API、開発およびベンダーのAsposeが配布しています。 このAPIの最新バージョンは、それは、読み取り、書き込み、およびスライドを管理することができますPPTコンポーネントを設計するための豊富なと重いAPI(プレーンなJavaクラスとAWTクラスの組み合わせ)である7月2014にリリースされ、8.1.2です。

次のようにこのAPIの一般的な用途は以下のとおりです。

  • ダイナミックなプレゼンテーションを構築
  • 忠実度の高いプレゼンテーションをレンダリングして印刷
  • 生成、編集、変換、および印刷プレゼンテーション

ApacheのPOI

ApacheのPOIは、Apache Software Foundationが提供する100%オープンソースのライブラリです。 中小規模のアプリケーション開発者のほとんどは、Apache POI(HSLF + XSLF)に大きく依存しています。 これは、PPTライブラリのすべての基本的な機能をサポートしています。 しかし、レンダリングとテキスト抽出は、その主な機能です。 下記のPPTのためのApache POIのアーキテクチャです。

POIフレーバー

ApacheのPOI PPT - インストール

この章では、WindowsおよびLinuxベースのシステム上のApache POIの設定を行うことができます。 ApacheのPOIは、簡単にインストールされ、任意の複雑なセットアップ手順なしでいくつかの簡単な手順を以下、現在のJava環境と統合することができます。 ユーザー管理は、インストールのために必要とされます。


システム要求

JDK Java SEの2 JDK 1.5以上
メモリ 1ギガバイトのRAM(推奨)
ディスクスペース いいえ最小要件はありません
オペレーティングシステムのバージョン Windows XPまたは上記の、Linuxの

私たちは今のApache POIをインストールする手順を続行してみましょう。

ステップ1:Javaのインストールを確認します

まず第一に、あなたのシステムにインストールされているJavaソフトウェア開発キット(SDK)を持っている必要があります。 これを確認するには、作業しているプラ​​ットフォームに応じて以下の2つのコマンドのいずれかを実行します。

Javaのインストールが適切に行われている場合、それはあなたのJavaのインストールの現在のバージョンおよび仕様が表示されます。 出力例を以下の表に与えられています。

プラットフォーム コマンド サンプル出力
ウィンドウズ

コマンドコンソールとタイプを開きます。

\>のjava -version

Javaのバージョン "1.7.0_60"

Javaの(TM)SEランタイム

環境(1.7.0_60-B19を構築)

Javaのホットスポット(TM)64ビットサーバー

VM(24.60-B09、混​​合モードを構築します)

リナックス

コマンド端子とタイプを開きます。

$のJava -version

Javaのバージョン "1.7.0_25"

オープンJDKランタイム環境(RHEL-2.3.10.4.el6_4-x86_64版)

オープンJDKの64ビットサーバーVM(23.7-B01、混合モードを構築します)

  • 私たちは、このチュートリアルの読者が自分のシステムにインストールされているJava SDKのバージョン1.7.0_60を持っていることを前提としています。

  • ケースでは、JavaのSDKを持っていないから、現在のバージョンをダウンロードhttp://www.oracle.com/technetwork/java/javase/downloads/index.htmlしてインストールしてください。

ステップ2:あなたのJava環境を設定します

Javaがマシンにインストールされているベースディレクトリの場所を指すように環境変数JAVA_HOMEを設定します。 例えば、

プラットフォーム 説明
ウィンドウズ CにJAVA_HOMEを設定します:\ PROGRAMFILESのjava \ \ jdk1.7.0_60
リナックス エクスポートJAVA_HOME =は/ usr / local / javaの電流

システムパスにJavaコンパイラの場所の完全なパスを追加します。

プラットフォーム 説明
ウィンドウズ システム変数PATHの末尾に:文字列 "\プログラムファイル\のJava \ jdk1.7.0_60の\ビンC」を追加します。
リナックス エクスポートPATH = $ PATHに:$ JAVA_HOME / binに/

上述したように、コマンドプロンプトからコマンドjava -versionを実行します

ステップ3:ApacheのPOIライブラリをインストールします。

以下からのApache POIの最新バージョンをダウンロードしhttp://poi.apache.org/download.htmlし、必要なライブラリは、Javaプログラムにリンクすることができる場所からフォルダにその内容を解凍します。 私たちは、ファイルがCドライブ上のフォルダに集めていると仮定しましょう​​。

以下の画像は、ダウンロードしたフォルダ内のディレクトリとファイル構造を示しています。

ジャーHierarchy1ジャーHierarchy2

CLASSPATHに上記の画像で強調されているように5 jarファイルの完全なパスを追加します。

プラットフォーム 説明
ウィンドウズ

ユーザー変数CLASSPATHの末尾に以下の文字列を追加します。

"C:\ポイ-3.9 \ POI-3.9-20121203.jar;"

"C:\ポイ-3.9 \ポイ-OOXML-3.9-20121203.jar;"

"C:\ポイ-3.9 \ポイ-OOXML-スキーマ-3.9-20121203.jar;"

"C:\ POI-3.9 \ OOXML-LIB \のdom4jの-1.6.1.jar;"

"C:\ POI-3.9 \ OOXML-LIB \ XMLBeansの-2.3.0.jar;;。"

リナックス

エクスポートCLASSPATH = $ CLASSPATHに:

/usr/share/poi-3.9/poi-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-schemas-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-3.9-20121203.tar:

/usr/share/poi-3.9/ooxml-lib/dom4j-1.6.1.tar:

/usr/share/poi-3.9/ooxml-lib/xmlbeans-2.3.0.tar


ApacheのPOI PPT - クラスとメソッド

この章では、Javaプログラムを使用して、PPTファイルで作業することが重要であるのApache POIのAPIの下にいくつかのクラスとメソッドについて学習します。


プレゼン

プレゼンテーションを作成および管理するには、パッケージorg.apache.poi.xslf.usermodelにXMLSlideShowというクラスを持っています。 いくつかの重要な方法と、このクラスのコンストラクタは以下の通りです。

クラス :XMLSlideShow

パッケージ :org.apache.poi.xslf.usermodel

S.No コンストラクタと説明
1

XMLSlideShow(java.io.InputStreamをInputStreamの)

あなたはそれに入力ストリームクラスのオブジェクトを渡すことで、このクラスをインスタンス化することができます。

S.No メソッドと説明
1

int型AddPicture関数(バイト[] pictureData、int型)

この方法を使用して、プレゼンテーションに画像を追加することができます。

2

XSLFSlide createSlide()

プレゼンテーションの空白のスライドを作成します。

3

XSLFSlide createSlide(XSLFSlideLayoutレイアウト)

与えられたスライドレイアウトでスライドを作成します。

4

java.util.Listに<XSLFPictureData> getAllPictures()

プレゼンテーション内のすべての画像の配列を返します。

5

java.awt.Dimensionはgetpagesize()

この方法を使用すると、現在のページサイズを知ることができます。

6

XSLFSlideMaster [] getSlideMasters()

プレゼンテーションのすべてのスライドの配列を返します。

7

XSLFSlide [] getSlides()

プレゼンテーションのすべてのスライドを返します。

8

XSLFSlide removeSlide(int型のインデックス)

この方法を使用すると、プレゼンテーションからスライドを削除することができます。

9

ボイドsetPageSize(java.awt.Dimension pgSize)

この方法を使用すると、ページサイズをリセットすることができます。

10

ボイドsetSlideOrder(XSLFSlideスライド、int型newIndex)

この方法を使用して、スライドを並べ替えることができます。


滑り台

プレゼンテーションのスライドを作成して管理するには、XSLFSlideクラスのメソッドが使用されています。 このクラスのいくつかの重要な方法は以下の通りです。

クラス :XSLFSlide

パッケージ :org.apache.poi.xslf.usermodel

S.No メソッドと説明
1

XSLFBackground getBackground()

スライドの背景の色やアンカーなどの詳細を取得するために使用することができXSLFBackgroundオブジェクトを返します。 また、このオブジェクトを使用して、スライドに図形を描画することができます。

2

XSLFSlideLayout getSlideLayout()

現在のスライドのXSLFSlideLayoutオブジェクトへアクセスを提供します

3

XSLFSlideMaster getSlideMaster()

現在のスライドのスライドマスターへのアクセスを提供します。

4

XSLFTheme getTheme()

現在のスライドのXSLFThemeオブジェクトを返します。

5

java.lang.StringであるgetTitle()

現在のスライドのタイトルを返します。

6

XSLFSlide ImportContentの(XSLFSheet SRC)

コピーし、このスライドに別のスライドの内容。


スライドマスタ

これは、別のスライドのレイアウトを持つプレゼンテーションの構成要素です。 XSLFSlideMasterクラスは、あなたがそれにアクセスすることができます。 後述のこのクラスのいくつかの重要な方法です。

クラス :XSLFSlideMaster

パッケージ :org.apache.poi.xslf.usermodel

S.No 説明
1

XSLFBackground getBackground()

スライドマスタの一般的な背景を返します。

2

XSLFSlideLayout getLayout(SlideLayoutタイプ)

XSLFSlideLayoutオブジェクトを返します。

3

XSLFSlideLayout [] getSlideLayouts()

このスライドマスタ内のすべてのスライドのレイアウトを返します。


スライドのレイアウト

POIライブラリを使用すると、スライドのレイアウトを管理することができる使用して、XSLFSlideLayoutというクラスがあります。

クラス :XSLFSlideLayout

パッケージ :org.apache.poi.xslf.usermodel

S.No メソッドと説明
1

ボイドcopyLayout(XSLFSlideスライド)

このメソッドは、指定されたスライドにこのレイアウトからプレースホルダをコピーします。


テキスト段落

あなたはXSLFTextParagraphクラスを使用して、スライドにコンテンツを書き込むことができます。 上記の下には、このクラスのいくつかの重要な方法です。

クラス :XSLFTextParagraph

パッケージ :org.apache.poi.xslf.usermodel

S.No メソッドと説明
1

XSLFTextRun addLineBreak()

段落内の改行を挿入します。

2

XSLFTextRun addNewTextRun()

段落のテキストの新規実行を追加します。

3

ボイドsetBulletAutoNumber(ListAutoNumberスキーム、int型startAt)

段落に自動番号付きの箇条書きを適用します。

4

ボイドsetIndent(double値)

段落内のテキストにインデントを設定します。

5

ボイドsetLeftMargin(double値)

この方法では、段落の左マージンを追加するために使用されます。

6

ボイドsetLineSpacing(ダブルlinespacing)

この方法は、段落のライン間隔を設定するために使用されます。

7

ボイドsetTextAlign(TextAlignアライン)

この方法は、段落に設定される配置を設定するために使用されます。


テキストフ​​ァイル名を指定して実行

これは、テキスト本文内のテキスト分離の最低レベルです。 あなたは、段落のテキストランを管理するためにXSLFTextRunクラスを持っています。 上記の下には、このクラスのいくつかの重要な方法です。

クラス :XSLFTextParagraph

パッケージ :org.apache.poi.xslf.usermodel

S.No メソッドと説明
1

XSLFHyperlink createHyperlink()

プレゼンテーションのハイパーリンクを作成します。

2

XSLFHyperlink getHyperlink()

この方法では、ハイパーリンクを取得するために使用されます。

3

java.lang.StringでのgetText()

Java文字列として、このテキストノードの値を返します。

4

ボイドsetBold(ブール太字)

この方法は、太字のテキストを設定するために使用されます。

5

ボイドsetCharacterSpacing(ダブルSPC)

テキストラン内の文字間の間隔を設定します。

6

ボイドsetFontColor(をjava.awt.Color色)

テキストのフォントの色を設定します。

7

ボイドsetFontSize(二重のfontSize)

テキストのフォントサイズを設定します。

8

ボイドsetItalic(ブールイタリック)

この方法は、段落がイタリック体にするために使用されます。

9

ボイドsetStrikethrough(ブールストライク)

このメソッドは、取り消し線、テキストなどのテキストの実行をフォーマットするために使用されます。

10

ボイドsetSubscript(ブールフラグ)

この方法は、下付き文字としてテキストの書式を設定するために使用されます。

11

ボイドsetSuperscript(ブールフラグ)

この方法は、上付き文字としてこの実行中のテキストの書式を設定するために使用されます。

12

ボイドのsetText(のjava.lang.Stringテキスト)

この方法は、実行中のテキストを設定するために使用されます。

13

ボイドsetUnderline(ブール下線)

この方法は、テキストラン内のテキストに下線を引くために使用されます。


テキスト形

PPTでは、我々は彼らの中にテキストを保持できる形状を有しています。 我々は、これらの使用してXSLFTextShapeクラスを管理することができます。 後述のこのクラスのいくつかの重要な方法です。

クラス :XSLFTextShape

パッケージ :org.apache.poi.xslf.usermodel

S.No メソッドと説明
1

ボイドsetPlaceholder(プレースホルダプレースホルダ)

この方法を使用して、プレースホルダーを選択することができます。

2

プレースホルダgetTextType()

現在のプレースホルダのタイプを返します。

3

平文を無効()

現在のテキスト形状のテキスト領域をクリアします。

4

XSLFTextParagraph addNewTextParagraph()

形状に実行する新しい段落を追加します。

5

ボイドdrawContent(java.awt.Graphics2Dグラフィック)

この方法では、スライド上の任意のコンテンツを描画することができます。


ハイパーリンク

POIライブラリを使用すると、プレゼンテーション内のハイパーリンクを作成することができます使用してXSLFHyperlinkというクラスがあります。 後述のこのクラスのいくつかの重要な方法です。

クラス :XSLFHyperlink

パッケージ :org.apache.poi.xslf.usermodel

S.No メソッドと説明
1

java.net.URI getTargetURL()

プレゼンテーションのスライドに既存のURLを返します。

2

ボイドsetAddress(のjava.lang.Stringアドレス)

このメソッドは、URLのアドレスを設定するために使用されます。

3

ボイドsetAddress(XSLFSlideスライド)

セットは、プレゼンテーションのスライドに存在するURLに取り組みます。


ApacheのPOI PPT - プレゼンテーション

一般的に、我々は、プレゼンテーションを作成するために、MS-PowerPointのを使用します。 今、私たちは、Javaを使用してプレゼンテーションを作成する方法を見てみましょう。 この章が完了したら、新しいMS-PowerPointプレゼンテーションを作成し、Javaプログラムで既存のPPTを開くことができるようになります。


空のプレゼンテーションを作成します

空のプレゼンテーションを作成するには、org.poi.xslf.usermodelパッケージXMLSlideShowクラスをインスタンス化する必要があります。

XMLSlideShow ppt = new XMLSlideShow();

FileOutputStreamクラスを使用してPPT文書への変更を保存します。

File file=new File("C://POIPPT//Examples//example1.pptx");
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);

下記の空白MS-PowerPointプレゼンテーションを作成するための完全なプログラムです。

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class CreatePresentation {
   
   public static void main(String args[]) throws IOException{
   
      //creating a new empty slide show
      XMLSlideShow ppt = new XMLSlideShow();	     
      
      //creating an FileOutputStream object
      File file =new File("example1.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out);
      System.out.println("Presentation created successfully");
      out.close()
   }
}

CreatePresentation.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  CreatePresentation.java
$java CreatePresentation

お使いのシステム環境がPOIライブラリで構成されている場合、それはあなたの現在のディレクトリにexample1.pptxという名前の空白のPPTファイルを生成し、コマンドプロンプトで次の出力を表示するためにコンパイルして実行します:

Presentation created successfully

次のように空白PowerPointの文書が表示されます。

例パワーポイント

既存のプレゼンテーションを編集します

、既存のプレゼンテーションを開くXMLSlideShowクラスをインスタンス化し、XMLSlideShowコンストラクタの引数として、編集するファイルののFileInputStreamオブジェクトを渡します。

File file=new File(“C://POIPPT//Examples//example1.pptx”);
FileInputstream inputstream =new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);

あなたはorg.poi.xslf.usermodelパッケージであるXMLSlideShowクラスのcreateSlide()メソッドを使用してプレゼンテーションにスライドを追加することができます。

XSLFSlide slide1= ppt.createSlide();

開き、既存のPPTにスライドを追加するための完全なプログラムは以下の通りです:

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class EditPresentation {

   public static void main(String ar[]) throws IOException{
	   
      //opening an existing slide show
      File file = new File("example1.pptx");
      FileInputStream inputstream=new FileInputStream(file);
      XMLSlideShow ppt = new XMLSlideShow(inputstream);
      
      //adding slides to the slodeshow
      XSLFSlide slide1 = ppt.createSlide();
      XSLFSlide slide2 = ppt.createSlide();
      
      //saving the changes 
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      System.out.println("Presentation edited successfully");
      out.close();	
   }
} 

EditPresentation.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  EditPresentation.java
$java EditPresentation

それは次のような出力を生成するためにコンパイルして実行します:

slides successfully added

次のように新たに追加されたスライドで出力PPT文書が見えます:

編集例

PPTへのスライドを追加した後、追加、実行、読み取り、およびスライド上での操作を書くことができます。


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

前の章で​​は、空のスライドを作成するために、どのようにスライドを追加する方法を見てきました。 この章では、利用可能なスライドのリストを取得する方法を学習します、とどのように異なるレイアウトでスライドを作成します。


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

PowerPointプレゼンテーションには、スライドのレイアウトを持っていて、スライドを編集したいレイアウトを選択することができます。 まず第一に、私たちが利用可能なすべてのスライドレイアウトのリストを見つけるてみましょう。

  • 別のスライドマスターがあり、それぞれのスライドマスタに、いくつかのスライドのレイアウトがあります。

  • あなたはgetSlideMasters XMLSlideShowクラス()メソッドを使用して、スライドマスターのリストを取得することができます。

  • あなたはXSLFSlideMasterクラスのgetSlideLayouts()メソッドを使用して、各スライドマスタからスライドレイアウトのリストを取得することができます。

  • あなたはXSLFSlideLayoutクラスののgetType()メソッドを使用してレイアウトオブジェクトからスライドのレイアウトの名前を取得することができます。

注 :すべてこれらのクラスは、パッケージを下記の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());
         } 
      }
   }
}

SlideLayouts.java上記のように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番目の場所にある、デフォルトのスライドマスタを取得しています。

ステップ3:XSLFSlideMaster クラスgetLayout()メソッドを使用して、目的のレイアウトを取得します。 この方法は、あなたが私たちの目的のレイアウトを表しSlideLayoutclassの静的変数の1を渡す必要がパラメータを受け付けます。 各変数は、スライドのレイアウトを表し、このクラスにはいくつかの変数があります。

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

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

TitleLayout.java上記のように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 クラス平文()メソッドを使用して、スライド内の既存のテキストをクリアします。

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

TitleLayout.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  TitleLayout.java
$java TitleLayout

それは次のような出力を生成するためにコンパイルして実行します:

slide created successfully

次のように新たに追加されたタイトルのレイアウトスライドとPPT文書が表示されます:

画像

同様に、あなたにもさまざまなレイアウトでスライドを作成することができます。


ApacheのPOI PPT - スライドの管理

この章が完了したら、あなたは、削除、並べ替え、およびスライド上での読み取りおよび書き込み操作を実行することができるようになります。


スライドを変更します

我々はXMLSlideShowクラスのsetPageSize()メソッドを使用してスライドのページサイズを変更することができます。

以下に示すように、最初にプレゼンテーションを作成します。

File file=new File("C://POIPPT//Examples// TitleAndContentLayout.pptx");
//create presentation
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

XMLSlideShowクラスのはgetpagesize()メソッドを使用して、現在のスライドのサイズを取得します。

java.awt.Dimension pgsize = ppt.getPageSize();

setPageSize()メソッドを使用してページのサイズを設定します。

ppt.setPageSize(new java.awt.Dimension(1024, 768));

スライドのサイズを変更するための完全なプログラムは、以下に与えられます。

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class ChangingSlide {
   
   public static void main(String args[]) throws IOException{

      //create file object
      File file = new File("TitleAndContentLayout.pptx");
	 
      //create presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the current page size
      java.awt.Dimension pgsize = ppt.getPageSize();
      int pgw = pgsize.width; //slide width in points
      int pgh = pgsize.height; //slide height in points
      System.out.println("current page size of the PPT is:");
      System.out.println("width :" + pgw);
      System.out.println("height :" + pgh);
      
      //set new page size
      ppt.setPageSize(new java.awt.Dimension(2048,1536));
      
      //creating file object
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out);
      System.out.println("slide size changed to given dimentions ");
      out.close();	
   }
}

ChangingSlide.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac ChangingSlide.java
$java ChangingSlide

それは次のような出力を生成するためにコンパイルして実行します。

current page size of the presentation is : 
width :720
height :540
slide size changed to given dimensions

下記のスライドのサイズを変更する前に、プレゼンテーションのスナップショットです。

TitleAndContentLayout

そのサイズを変更した後、次のようにスライドが表示されます。

SlideAfterChange

並び替えスライド

あなたはsetSlideOrder()メソッドを使用して、スライドの順序を設定することができます。 下記のスライドの順序を設定するための手順です。

以下に示すように、既存のPPT文書を開きます。

File file=new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

以下に示すようにgetSlides()メソッドを使用してスライドを取得します。

XSLFSlide[] slides =ppt.getSlides();

スライドの配列からスライドを選択して、以下に示すようにsetSlideOrder()メソッドを使用して順序を変更します。

//selecting the fourth slide
XSLFSlide selectesdslide= slides[4];
//bringing it to the top
ppt.setSlideOrder(selectesdslide, 1);

下記のプレゼンテーションのスライドの順序を変更するための完全なプログラムです。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ReorderSlide {	
   
   public static void main(String args[]) throws IOException{
   
      //opening an existing presentation
      File file=new File("example1.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //get the slides 
      XSLFSlide[] slides = ppt.getSlides();    
      
      //selecting the fourth slide
      XSLFSlide selectesdslide = slides[13];
      
      //bringing it to the top
      ppt.setSlideOrder(selectesdslide, 0);
      
      //creating an file object 
      FileOutputStream out = new FileOutputStream(file);
	  
      //saving the changes to a file
      ppt.write(out);
      out.close();	
   }
}

ReorderSlide.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  ReorderSlide.java
$java ReorderSlide

それは次のような出力を生成するためにコンパイルして実行します。

Reordering of the slides is done

下記のスライドを並べ替えする前に、プレゼンテーションのスナップショットです。

並べ替えの前に

次のようにスライドを並べ替えた後、プレゼンテーションが表示されます。 ここでは、画像を含むスライドを選択し、一番上に移動しました。

並べ替えた後、

スライドを削除します

あなたはremoveSlide()メソッドを使用してスライドを削除することができます。 スライドを削除するには、以下の手順に従ってください。

以下に示すようにXMLSlideShowクラスを使用して、既存のプレゼンテーションを開きます。

File file=new File("C://POIPPT//Examples//image.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

removeSlide()メソッドを使用して、必要なスライドを削除します。 このメソッドは、整数パラメーターを受け入れます。 このメソッドに削除するスライドのインデックスを渡します。

ppt.removeSlide(1);

下記のプレゼンテーションからスライドを削除するプログラムは、次のとおりです。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class Deleteslide { 
   
   public static void main(String args[]) throws IOException{
   
      //Opening an existing slide
      File file=new File("image.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //deleting a slide
      ppt.removeSlide(1);
      
      //creating a file object
      FileOutputStream out = new FileOutputStream(file);
      
      //Saving the changes to the presentation
      ppt.write(out);
      out.close();	
   }
}

Deleteslide.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  Deleteslide.java
$java Deleteslide

それは次のような出力を生成するためにコンパイルして実行します:

reordering of the slides is done

以下のスナップショットは、スライドを削除する前に、プレゼンテーションは次のとおりです。

並べ替えた後、

次のようにスライドを削除した後、プレゼンテーションが表示されます。

スライドを削除します

ApacheのPOI PPT - イメージ

この章では、PPTとどのようにそれから画像を読み取るために画像を追加する方法を学習します。


イメージの追加

あなたはXSLFSlideのcreatePicture()メソッドを使用してプレゼンテーションに画像を追加することができます。 このメソッドは、バイト配列形式の形式で画像を受け付けます。 したがって、プレゼンテーションに追加する画像のバイト配列を作成する必要があります。

プレゼンテーションに画像を追加するために与えられた手順に従ってください。 以下に示すようにXMLSlideShowを使用して空のスライドショーを作成します。

XMLSlideShow ppt = new XMLSlideShow();

createSlide()を使用して、その中に空のプレゼンテーションを作成します。

XSLFSlide slide = ppt.createSlide();

追加する画像ファイルを読み込み、以下に示すようにIOUtilsクラスのIOUtils.toByteArray()を使用してバイト配列に変換:

//reading an image
File image=new File("C://POIPPT//boy.jpg");
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));

AddPicture関数を()を使用してプレゼンテーションに画像を追加します。 バイト配列を追加する画像のフォーマットおよび画像のファイル形式を表す静的変数:この方法は、2つの変数を受け付けます。 AddPicture関数()メソッドの使用方法を以下に示します。

int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);

以下に示すようにcreatePictureを()を使用してスライドに画像を埋め込 ​​みます:

XSLFPictureShape pic = slide.createPicture(idx);

下記のプレゼンテーションのスライドに画像を追加するための完全なプログラムです。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.util.IOUtils;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class AddingImage {
   
   public static void main(String args[]) throws IOException{
   
      //creating a presentation 
      XMLSlideShow ppt = new XMLSlideShow();
      
      //creating a slide in it 
      XSLFSlide slide = ppt.createSlide();
      
      //reading an image
      File image=new File("C://POIPPT//boy.jpg");
      
      //converting it into a byte array
      byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
      
      //adding the image to the presentation
      int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
      
      //creating a slide with given picture on it
      XSLFPictureShape pic = slide.createPicture(idx);
      
      //creating a file object 
      File file=new File("addingimage.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out)
      System.out.println("image added successfully");
      out.close();	
   }
}

AddingImage.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  AddingImage.java
$java AddingImage

それは次のような出力を生成するためにコンパイルして実行します:

reordering of the slides is done

次のようにイメージと新たに追加されたスライドを持つプレゼンテーションが表示されます:

イメージの追加

画像読取

あなたはgetAllPictures XMLSlideShowクラス()メソッドを使用して、すべての画像のデータを取得することができます。 以下のプログラムは、プレゼンテーションから画像を読み取ります。


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;

public class Readingimage {
  
  public static void main(String args[]) throws IOException{
   
      //open an existing presentation 
      File file = new File("addingimage.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //reading all the pictures in the presentation
      for(XSLFPictureData data : ppt.getAllPictures()){
         
         byte[] bytes = data.getData();
         String fileName = data.getFileName();
         int pictureFormat = data.getPictureType();
         System.out.println("picture name: " + fileName);
         System.out.println("picture format: " + pictureFormat);   
      }	    
      
      //saving the changes to a file
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      out.close();	
   }
}

Readingimage.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  Readingimage.java
$java Readingimage

それは次のような出力を生成するためにコンパイルして実行します:

picture name: image1.png
picture format: 6 

ApacheのPOI PPT - ハイパーリンクを作成します

この章では、プレゼンテーション内のハイパーリンクを作成する方法を学習します。


ハイパーリンクを作成します

あなたはXSLFTextRunクラスのcreateHyperlink()メソッドを使用して、プレゼンテーション内のハイパーリンクを読み取ることができます。 プレゼンテーションのハイパーリンクを作成するには、以下の手順に従ってください。

以下に示すようにXMLSlideShowクラスを使用して、空のプレゼンテーションを作成します。

XMLSlideShow ppt = new XMLSlideShow();

空のスライドを作成し、ボディとコンテンツのレイアウトを使用して、スライドのテキストボックスと本体を作成します。

//create an empty presentation
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
//creating a slide with title and content layout
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
XSLFSlide slide = ppt.createSlide(slidelayout);
//selection of body place holder
XSLFTextShape body = slide.getPlaceholder(1);
//clear the existing text in the slide
body.clearText();

テキストランのオブジェクトを作成し、以下に示すように、それにテキストを設定します。

XSLFTextRun textRun=body.addNewTextParagraph().addNewTextRun();
textRun.setText("Tutorials point");

以下に示すようにXSLFTextRunクラスのcreateHyperlink()メソッドを使用してハイパーリンクを作成します。

XSLFHyperlink link = textRun.createHyperlink();

以下に示すようにXSLFHyperlinkクラスのsetAddress()メソッドを使用して、ハイパーリンクへのリンクアドレスを設定します。

link.setAddress("http://www.w3ii.com/");

プレゼンテーション内のハイパーリンクを作成するための完全なプログラムは以下の通りです:

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.XSLFHyperlink;
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.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class CreatingHyperlinks {

   public static void main(String args[]) throws IOException{
      
      //create an empty 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 body = slide.getPlaceholder(1);
      
      //clear the existing text in the slid
      body.clearText();
      
      //adding new paragraph
      XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
      
      //setting the text
      textRun.setText("Tutorials point");	
      //creating the hyperlink
      XSLFHyperlink link = textRun.createHyperlink();
      
      //setting the link address
      link.setAddress("http://www.w3ii.com/");
      
      //create the file object            
      File file=new File("hyperlink.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a file
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();              
   }
}

CreatingHyperlinks.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  CreatingHyperlinks.java
$java CreatingHyperlinks

それは次のような出力を生成するためにコンパイルして実行します:

slide cretated successfully 

次のようにその本体内のハイパーリンクで新たに追加されたスライドになります。

ハイパーリンクを作成します。

ApacheのPOI PPT - 読書シェイプ


プレゼンテーションからシェイプを読みます

あなたはXSLFShapeクラスのメソッドgetShapeNameを()を使用してプレゼンテーションで使用される図形の数のカウントを取得することができます。 下記のプレゼンテーションから形状を読み込むためのプログラムです。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ReadingShapes {
   
   public static void main(String args[]) throws IOException{
      
      //creating a slideshow 
      File file = new File("shapes.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //get slides 
      XSLFSlide[] slide = ppt.getSlides();
      
      //getting the shapes in the presentation
      System.out.println("Shapes in the presentation:");
      for (int i = 0; i < slide.length; i++){
         
         XSLFShape[] sh = slide[i].getShapes();
         for (int j = 0; j < sh.length; j++){
            
            //name of the shape
            System.out.println(sh[j].getShapeName());
         }
      }
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      out.close();	
   }
}

ReadingShapes.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  ReadingShapes.java
$java ReadingShapes

それは次のような出力を生成するためにコンパイルして実行します。

Shapes in the presentation: 
Rectangle 1
Oval 1
Isosceles Triangle 1

次のように様々な形状を持つ新たに追加されたスライドが表示されます。

読書シェイプ

ApacheのPOI PPT - テキストの書式設定


プレゼンテーションでのテキストの書式設定

プレゼンテーション内のテキストはXSLFTextRunクラスのメソッドを使用してフォーマットすることができます。 そのためには、以下に示すように、スライドレイアウトのいずれかを選択することにより、XSLFTextRunクラスのオブジェクトを作成する必要があります。

//create the empty 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 body = slide.getPlaceholder(1);
//clear the existing text in the slide
body.clearText();
//adding new paragraph
XSLFTextParagraph paragraph=body.addNewTextParagraph();
//creating text run object
XSLFTextRun run = paragraph.addNewTextRun();

あなたはsetFontSize()を使用して、プレゼンテーション内のテキストのフォントサイズを設定することができます。

run.setFontColor(java.awt.Color.red);
run.setFontSize(24);

次のコードスニペットは、プレゼンテーション内のテキストに異なるフォーマットスタイル(太字、斜体、下線、取り消し線)を適用する方法を示しています。

//change the text into bold format
run.setBold(true);
//change the text it to italic format
run.setItalic(true)
// strike through the text
run.setStrikethrough(true);
//underline the text
run.setUnderline(true);

以下に示すように、段落間の改行を持っているために、XSLFTextParagraphクラスのaddLineBreak()を使用します。

paragraph.addLineBreak();

下記のすべての上記の方法を使用してテキストの書式を設定するための完全なプログラムです。

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.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TextFormating {
   
   public static void main(String args[]) throws IOException{
      
      //creating an empty 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 body = slide.getPlaceholder(1);
      
      //clear the existing text in the slide
      body.clearText();
      
      //adding new paragraph
      XSLFTextParagraph paragraph=body.addNewTextParagraph();
      
      //formatting line1
      XSLFTextRun run1 = paragraph.addNewTextRun();
      run1.setText("This is a colored line");      
      //setting color to the text
      run1.setFontColor(java.awt.Color.red);      
      //setting font size to the text
      run1.setFontSize(24);      
      //moving to the next line
      paragraph.addLineBreak();
     
      //formatting line2
      XSLFTextRun run2 = paragraph.addNewTextRun();
      run2.setText("This is a bold line");
      run2.setFontColor(java.awt.Color.CYAN);
      //making the text bold
      run2.setBold(true);
      paragraph.addLineBreak();
      
      //formatting line3
      XSLFTextRun run3 = paragraph.addNewTextRun();
      run3.setText(" This is a striked line");
      run3.setFontSize(12);
      //making the text italic
      run3.setItalic(true);
      //strike through the text
      run3.setStrikethrough(true);
      paragraph.addLineBreak();
      
      //formatting line4
      XSLFTextRun run4 = paragraph.addNewTextRun();
      run4.setText(" This an underlined line");
      run4.setUnderline(true);
      //underlining the text
      paragraph.addLineBreak();
      //creating a file object
      File file=new File(“TextFormat.pptx”);
      FileOutputStream out = new FileOutputStream(file);
      saving the changes to a file
      ppt.write(out);
      out.close();	 
   }
}

TextFormating.javaとして上記のコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  TextFormating.java
$java TextFormating

それは次のような出力を生成するためにコンパイルして実行します:

Formatting completed successfully 

次のようにフォーマットされたテキストを持つスライドが表示されます。

テキストの書式設定

ApacheのPOI PPT - マージ


複数のプレゼンテーションをマージ

あなたはXMLSlideShowクラスのImportContentの()メソッドを使用して複数のプレゼンテーションをマージすることができます。 以下に与えられた2つのプレゼンテーションをマージするための完全なプログラムです。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class MergingMultiplePresentations {
   
      public static void main(String args[]) throws IOException{
      
      //creating empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //taking the two presentations that are to be merged 
      String file1 = "presentation1.pptx";
      String file2 = "presentation2.pptx";
      String[] inputs = {file1, file2};
      
      for(String arg : inputs){
      
         FileInputStream inputstream = new FileInputStream(arg);
         XMLSlideShow src = new XMLSlideShow(inputstream);
         for(XSLFSlide srcSlide : src.getSlides()){
         
            //merging the contents
            ppt.createSlide().importContent(srcSlide);
         }
      }
     
      String file3 = "combinedpresentation.pptx";
      
      //creating the file object
      FileOutputStream out = new FileOutputStream(file3);
      
      // saving the changes to a file
      ppt.write(out);
      System.out.println("Merging done successfully");
      out.close();
   }
}

MergingMultiplePresentations.javaとして上記のコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  MergingMultiplePresentations.java
$java MergingMultiplePresentations

それは次のような出力を生成するためにコンパイルして実行します:

Merging done successfully

次のスナップショットは、最初のプレゼンテーションを示しています。

Presentation1

次のスナップショットは、第二のプレゼンテーションを示しています。

Presentation2

下記の2つのスライドをマージした後、プログラムの出力です。 ここでは、一緒にマージされ、以前のスライドの内容を見ることができます。

組み合わせ発表

ApacheのPOI PPT - イメージへのPPT


イメージにプレゼンテーションを変換します

あなたがイメージファイルにプレゼンテーションを変換することができます。 次のプログラムはそれについて移動する方法を示しています。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class PpttoPNG {
   
   public static void main(String args[]) throws IOException{
      
      //creating an empty presentation
      File file=new File("addingimage.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //getting the dimensions and size of the slide 
      Dimension pgsize = ppt.getPageSize();
      XSLFSlide[] slide = ppt.getSlides();
      for (int i = 0; i < slide.length; i++) {
      BufferedImage img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
      Graphics2D graphics = img.createGraphics();
      
      //clear the drawing area
      graphics.setPaint(Color.white);
      graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));
      
      //render
      slide[i].draw(graphics);
      
      //creating an image file as output
      FileOutputStream out = new FileOutputStream("ppt_image.png");
      javax.imageio.ImageIO.write(img, "png", out);
      ppt.write(out);
      System.out.println("Image successfully created");
      out.close();	
   }
}

PpttoPNG.java上記のようにJavaコードを保存し、次のようにコマンド・プロンプトから、それをコンパイルして実行します。

$javac  PpttoPNG.java
$java PpttoPNG

それは次のような出力を生成するためにコンパイルして実行します:

Image created successfully

次のスナップショットは、入力として与えられたプレゼンテーションを示しています。

presentation1

下記の指定した場所に作成された画像のスナップショットです。

PPTイメージ