Apache POI HSLF

 
 

Microsoft® PPT プレゼンテーション ファイル形式の Java ライブラリ

スライドと画像をプレゼンテーションに追加し、オープンソースの無料 Java API を使用して PPT ファイルを変換します。

Apache POI HSLF とは何ですか?

Apache POI HSLF は、PowerPoint プレゼンテーションを読み取り、作成、変更、またはレンダリングするための純粋な Java 実装です。 PowerPoint プレゼンテーションの PPT ファイル形式を読み取り、作成、または変更する方法を提供します。テキスト、画像、サウンド、埋め込みオブジェクトなどのデータを PowerPoint プレゼンテーションから抽出するためのサポートを提供します。

また、スライドへの図形の描画、ハイパーリンク、表、画像の追加、ヘッダーとフッターのカスタマイズ、箇条書きリストの作成、埋め込みサウンドの取得などもサポートしています。

Previous Next

Apache POI HSLF を使ってみる

まず、システムに Java Development Kit (JDK) をインストールする必要があります。既にお持ちの場合は、Apache POI の ダウンロード ページに進み、最新の安定版リリースをアーカイブから入手してください。必要なライブラリーを Java プログラムにリンクできる任意のディレクトリーに ZIP ファイルの内容を抽出します。それだけです!

Maven ベースの Java プロジェクトで Apache POI を参照するのはさらに簡単です。必要なのは、pom.xml に次の依存関係を追加し、IDE が Apache POI Jar ファイルを取得して参照できるようにすることだけです。

Apache POI Maven の依存関係

<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>4.1.0</version>
  </dependency>
  

新しい PPT を動的に作成するか、既存のプレゼンテーションを変更します

Apache POI HSLF を使用すると、プログラマーは新しい PowerPoint プレゼンテーションを PPT ファイル形式で作成できます。開発者は、必要に応じて既存のプレゼンテーションを変換することもできます。この API は、PowerPoint プレゼンテーションからテキスト、画像、サウンド、埋め込みオブジェクトなどのデータを抽出する機能もサポートしています。

PPT ファイルの作成 - Java

// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("Slide.ppt"));
// create a new slide show
HSLFSlideShow xmlSlideShow = new HSLFSlideShow();
// save file
xmlSlideShow.write(fileOutputStream);

スライド、画像を追加し、ヘッダーとフッターを PPT にカスタマイズする

開発者は、Apache HSLF API を使用して、PPT プレゼンテーション内の独自のニーズに応じて、新しいスライドを簡単に追加したり、既存のスライドを変更したりできます。開発者は、カスタマイズされたヘッダーとフッターをプレゼンテーションに追加できるようになりました。また、スライドのタイトルの追加、事前定義されたレイアウトでのスライドの作成、スライド/図形の背景の操作などを完全にサポートします。

Java経由でPPTに画像を挿入

  1. FileOutputStream を使用して新しい PPT ファイルを作成し、出力ファイル名を文字列として new File() のインスタンスを渡します
  2. HSLFSlideShow() メソッドを使用して新しいスライド ショーを追加する
  3. createSlide() メソッドを使用して新しいスライドを追加する
  4. IOUtils.toByteArray() メソッドを使用して画像バイトを取得し、 FileInputStream() メソッドを介して画像を渡します
  5. hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG) メソッドを使用して、スライドに画像を追加します。このメソッドは、ピクチャ バイトとピクチャ タイプを引数として受け取ります。
  6. ファイルを書き込んで保存する

PPT に画像を追加 - Java

// create a new PPT file
FileOutputStream fileOutputStream = new FileOutputStream(new File("AddImage.ppt"));
// create a new slide show
HSLFSlideShow hslfSlideShow = new HSLFSlideShow();
// create slide
HSLFSlide slide = hslfSlideShow.createSlide();
// load image
byte[] picture = IOUtils.toByteArray(new FileInputStream(new File("apache-poi-logo-min.png")));
// add image
HSLFPictureData hslfPictureData = hslfSlideShow.addPicture(picture, HSLFPictureData.PictureType.PNG);
HSLFPictureShape pictureShape = slide.createPicture(hslfPictureData);
// save file
hslfSlideShow.write(fileOutputStream);
// close stream
fileOutputStream.close();

Java API を使用してスライドを画像形式に変換する

Apache POI HSLF API を使用すると、ソフトウェア開発者は、PowerPoint プレゼンテーションの各スライドを Java アプリケーション内の画像ファイル形式に変換できます。スライドを java.awt.Graphics2D オブジェクト (またはその他のオブジェクト) にキャプチャし、PNG または JPEG 形式にシリアル化できます。サポートされている画像は、JPEG、PNG、DIB などです。

PPT を画像に変換 - Java

//open an existing PPT file
HSLFSlideShow hslfSlideShow = new HSLFSlideShow(new FileInputStream(new File("PPTtoImage.ppt")));
// get dimensions
Dimension pgsize = hslfSlideShow.getPageSize();
java.util.List slide = hslfSlideShow.getSlides();
for (int i = 0; i < slide.size(); 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.get(i).draw(graphics);
  // create image
  FileOutputStream out = new FileOutputStream("PPTtoImage.png");
  javax.imageio.ImageIO.write(img, "png", out);
  out.close();
}
 日本