スライドを画像にすれば、パワポはお絵かきツールw
Apache POIを使って、パワーポイントのスライドを画像出力するサンプル
Apache POIを使って、PowerPointのスライドをPNG形式の画像を出力します。
| 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 | import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.List; import javax.imageio.ImageIO; import org.apache.poi.xslf.usermodel.XMLSlideShow; import org.apache.poi.xslf.usermodel.XSLFSlide; public class PowerPointImageWriteTest {     public static void main(String[] args) {         try (FileInputStream fis = new FileInputStream("c:\\work\\in.pptx");             XMLSlideShow ppt = new XMLSlideShow(fis)) {             //スライドの数だけ回す             List<XSLFSlide> slieList = ppt.getSlides();             for (int i=0 ; i<slieList.size() ; i++) {                 //スライドを取得                 XSLFSlide slide = slieList.get(i);                 //スライドのサイズでイメージを作成。グラフィックスを取得。                 BufferedImage image = new BufferedImage(ppt.getPageSize().width, ppt.getPageSize().height,BufferedImage.TYPE_INT_RGB);                 Graphics2D g = image.createGraphics();                 //スライドの内容をグラフィックスに描画                 slide.draw(g);                 //画像ファイルを出力                 ImageIO.write(image, "png", new File("c:\\work\\output.png"));             }         } catch (IOException e) {             e.printStackTrace();         }     } } | 
実行結果
読み込んだパワーポイントのスライドをもとに、PNG形式の画像ファイルが作成されます。
 スライド内の画像の透明度、蛍光ペンなどいくつかは正しく反映されませんが、それなりに出力されますw
読み込み元のパワポはこんな感じ。
 
 書き込み先のPNG画像はこんな感じ。
 
サンプルの解説
XSLFSlide#draw(Graphics)を使うと、スライド内容をグラフィックスに書き込むことができます。
 ですので、あらかじめBufferedImageなどを用意して、グラフィックスを取得しておきます。
 書き込んだ後は、BufferedImageなどのイメージをファイルへ出力するだけですね。
また、全角文字を使う時には、パワポでフォントを必ず指定しておく必要があります。
 指定しないと化けてしまいます。
※このコードを使用するには、別途Apache POIの入手が必要です。
 入手方法などはこちらの記事に書いてあります。










