« Amazonの商品個別ページのURLからASINを取得する | メイン | プチプチAPI に機能追加を行いました »

JavaでPowerPointファイルを読み込む
このエントリーをブックマークに追加 このエントリーをlivedoorクリップに追加

こんにちは。中村です。

JavaからMicrosoft Officeのファイルを読み書きするのには、100%Javaで実装されているApache POIを利用することができます。

昔はPowerPointファイルを読み書きするAPI群であるHSLFはなかったので、POIで検索するとEXCELファイルを読み書きするHSSFが中心に紹介されているようです。

今回はHSLFを使ってPowerPointファイルの中にある文字列を出力する簡単なサンプルを書いてみました。

package net.unoh.ppt2text;

import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.Shape;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextBox;
import org.apache.poi.hslf.usermodel.SlideShow;

public class PPT2Text {

    public static void main(String[] args) {

        if (args.length != 1) {
            printUsage();
            System.exit(1);
        }

        try {

            SlideShow slideShow = new SlideShow(new HSLFSlideShow(args[0]));
            Slide[] slides = slideShow.getSlides();

            for (int i = 0; i < slides.length; i++) {

                Shape[] shapes = slides[i].getShapes();

                for (int j = 0; j < shapes.length; j++) {

                    if (shapes[j] instanceof TextBox) {
                        TextBox shape = (TextBox)shapes[j];
                        String text = shape.getText();
                        if (text != null) {
                            System.out.println(text);
                        }
                    }

                }
            
            }

        } catch (FileNotFoundException e) {
            System.err.println("File not found");
        } catch (IOException e) {
            System.err.println("IO error");
        }

    }
    
    public static void printUsage() {
        System.out.println("Usage: ppt2text filename");
    }

}

POIのクラスファイルをダウンロードページから取得してビルドしています。

これで例えばLinuxのコンソール上からPowerPointファイルを読むというニッチなことも、以下のようにjarファイルを実行するだけで可能です。

ppt2text
ppt2text posted by (C)フォト蔵

Busy Developers' Guide to HSLF drawing layerにサンプルコードがまとまっていて参考になります。

Microsoft Officeのファイルを扱う実装はJava以外にもありますが、POIも良い選択肢の一つになるのではないでしょうか。

トラックバック

このエントリーのトラックバックURL:
http://www.unoh.net/mt32/mt-tb.cgi/1073

コメントを投稿


画像の中に見える文字を入力してください。

  [PR] 転職
ウノウラボはウノウ株式会社のエンジニア/デザイナーによる大小のアウトプットを行っていく場です。

現在ウノウは絶賛人材募集中です。詳細は求人ページへ。

About

2008年3月27日 11:59に投稿されたエントリーのページです。

ひとつ前の投稿は「Amazonの商品個別ページのURLからASINを取得する」です。

次の投稿は「プチプチAPI に機能追加を行いました」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

ウノウサービス