Extractor機能

ひとまず、word, excel, powerpoint, visio, publisher, pdf からテキストを取得する機能を追加してみた。ms office 系は POI に投げている感じだけど。これはこれで、読めるものを増やしていきたいところ。そんな感じで、MIMEタイプの判定のところもそうだけど、Extractor のところもクロール機能とは関係なく、それだけで利用できるようにdiconを分けてみたりしておいた。

PDFから文字列取得

PDFBox を使うと、PDF から簡単に文字列を取得することができる。

PDDocument document = PDDocument.load(in);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Writer output = new OutputStreamWriter(baos, encoding);
PDFTextStripper stripper = new PDFTextStripper();
stripper.writeText(document, output);
return baos.toString(encoding);

Maven2 でこれしたいなら、以下を pom.xml に書く。

<dependency>
<groupId>pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>0.7.3</version>
</dependency>

一応、文字化けもしないみたい。

Word, Excel, PowerPointから文字列取得

POI を使うと、Wordからとか、簡単に文字列を取得することができる。

InputStream in = ...;
String content;
content = new org.apache.poi.hwpf.extractor.WordExtractor(in).getText();
content = new org.apache.poi.hssf.extractor.ExcelExtractor(new HSSFWorkbook(in)).getText();
content = new org.apache.poi.hslf.extractor.PowerPointExtractor(in).getText();

Maven2 でこれしたいなら、以下を pom.xml に書く。

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.5-beta6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.5-beta6</version>
</dependency>

一応、文字化けもしないみたい。