パワポって図形の集まりなんで、これが出力の基本ですね。
Apache POIを使って、パワーポイントに図形を出力するサンプル
Apache POIを使って、PowerPointのファイルを出力します。
 また、作成するスライドに丸・三角・四角の図形を出力します。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | import java.awt.Color; import java.awt.Rectangle; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.sl.usermodel.ShapeType; import org.apache.poi.xslf.usermodel.XMLSlideShow; import org.apache.poi.xslf.usermodel.XSLFAutoShape; import org.apache.poi.xslf.usermodel.XSLFSlide; public class PowerPointWriteTest {     public static void main(String[] args) {         try (XMLSlideShow slideShow = new XMLSlideShow();             FileOutputStream out = new FileOutputStream("c:\\work\\test.pptx")) {             //スライド作成             XSLFSlide slide = slideShow.createSlide();             //丸の図形を作成             XSLFAutoShape ellipse = slide.createAutoShape();             ellipse.setShapeType(ShapeType.ELLIPSE);             ellipse.setLineColor(Color.BLACK);             ellipse.setAnchor(new Rectangle(100, 100, 200, 200));             ellipse.setText("丸");             //三角の図形を作成             XSLFAutoShape triangle = slide.createAutoShape();             triangle.setShapeType(ShapeType.TRIANGLE);             triangle.setLineColor(Color.BLACK);             triangle.setAnchor(new Rectangle(300, 100, 200, 200));             triangle.setText("三角");             //四角の図形を作成             XSLFAutoShape rectangle = slide.createAutoShape();             rectangle.setShapeType(ShapeType.RECT);             rectangle.setLineColor(Color.BLACK);             rectangle.setAnchor(new Rectangle(500, 100, 200, 200));             rectangle.setText("四角");             //ファイルへ出力             slideShow.write(out);         } catch (IOException e) {             e.printStackTrace();         }     } } | 
実行結果
PowerPointのファイルが出力されます。
 また、こんな感じでスライドに丸・三角・四角の図形が出力されます。
 
サンプルの解説
XSLFSlide#createAutoShape()で図形を作成します。
 作成したシェイプに対して、シェイプの種類(丸とか)、文字列などを指定しています。
 あとは、XMLSlideShow#write(OutputStream)で出力して、ファイルを作るだけですね。
※このコードを使用するには、別途Apache POIの入手が必要です。
 入手方法などはこちらの記事に書いてあります。










