« 西日本への移動を真剣に検討してみては? | メイン | 設定画面のリストに画像を埋め込む »

2011年04月12日

Android:: PDFBox を使おうとしたが無理そう

    

Android で PDF を表示するために、ライセンス的に使いやすく JAVA で書かれた PDFBox を使おうとしたが、どうもそのまま使うのは難しそうだ。
まず、java.awt.* などの Android で使えないライブラリが使われているので、それらを使用しているクラスは使えない。
PDFBox はレンダリング時に java.awt.* を使用しているので、ここはまず書き換えないと無理。
パーサー部分については、PDFBox はどうも一気にドキュメント構造全部を調べて、内部構造に変換してしまうようだ。
この処理が時間かかる上にメモリ不足で落ちる。
小さいドキュメントなら大丈夫だと思うが、ある程度の大きさがあると無理。

と言うことで、PDFBox をそのまま使うのは断念した。
そこで、最初にPDFのページ数とページツリー構造を読み込む処理を行い、次に任意のページがレンダリング出来るような形でライブラリを作ることにした。
PDFBox から使えそうな部分はそのまま持ってきて。

作るに当たって最初はソースコードを読んでいたんだけど、それだけでは PDF の構造がわかりづらいので、オンライン上にある英文の PDF の仕様書を見ていたんだけどそれも辛かったから、PDFリファレンス第2版 を見ながら作ることにした。
この本があるとだいぶ作りやすい。



投稿者 Takenori : 2011年04月12日 21:19




comments powered by Disqus
Total : Today : Yesterday : なかのひと