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が無いのであった。
コメント