JavaでPowerpointファイル作成

POIっていつの間にかExcelだけではなくPowerpointも扱えるようになっていたので

package nekora;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.commons.io.IOUtils;
import org.apache.poi.hslf.model.AutoShape;
import org.apache.poi.hslf.model.ShapeTypes;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextBox;
import org.apache.poi.hslf.model.TextShape;
import org.apache.poi.hslf.usermodel.SlideShow;

/**
 * Apache POI 3.7によるパワーポイントファイルの出力サンプル
 * http://poi.apache.org/
 *
 * Commons IOも必要
 *
 * @author nekora
 *
 */

public class PPTOutMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		File pptFile=new File("test.ppt");
		FileOutputStream fos=null;
		BufferedOutputStream bos=null;

		try {
			fos = new FileOutputStream(pptFile);
			bos = new BufferedOutputStream(fos);

			// PPT全体
			SlideShow ppt = new SlideShow();

			// 1枚目のスライド
			Slide slide1 = ppt.createSlide();
			slide1.addTitle().setText("最初のスライド"); //普通に日本語混ぜてOK
			AutoShape as = new AutoShape(ShapeTypes.Star); // ☆型シェイプ
			as.setAnchor(new java.awt.Rectangle(300, 200, 200, 200)); // 位置と大きさ。全体はA4横72dpi ポイントで指定
			slide1.addShape(as);

			// 二枚目のスライド
			Slide slide2 = ppt.createSlide();
			slide2.addTitle().setText("二枚目のスライド");
			TextShape ts =new TextBox(); // 横書きテキストボックス
			ts.setText("こんにちわちわ");
			ts.setAnchor(new java.awt.Rectangle(300, 100, 300, 50));
			slide2.addShape(ts);

			// PPTファイルに書き出す
			ppt.write( bos );
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			IOUtils.closeQuietly(bos);
			IOUtils.closeQuietly(fos);
		}
	}
}

うむ。実に簡単。しかし家のPCにはPowerpointが無いのであった。