Mobyletを使う

Fess に Mobylet を投入してモバイルサポートを進めている。0.8.2 を使いはじめているけど、POST で送信したときのアクションが呼ばれてないみたいな気が(原因を調べないといけないけど)。Mobyletの画像変換はかなり便利だと思う。モバイルの画面表示で画像のサイズをどうするかとかを悩まずに、画面幅の 80% くらいみたいな指定でできてしまう。あとは、キャリア判定も

Mobylet mobylet = MobyletFactory.getInstance();
Carrier carrier = mobylet.getCarrier();
switch (carrier) {
case DOCOMO:
// ドコモだよ
break;
case AU:
// auだよ
break;
case SOFTBANK:
// ソフトバンクだよ
break;
default:
// PCなど
break;
}

みたいにさっくり書ける。これ以外にも絵文字処理をやってくれるし。そんなわけで、Javaでのモバイルウェブアプリの敷居を下げてくれることでしょう(そうそう、MobyletってSeasarから提供されているけど別にS2なくても動く感じ)。

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>

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