GAEJ PDFのテキスト抽出
Apache PDFBoxを使ってPDFのテキスト抽出を行おうとすると、java.awtパッケージのクラス(GAEJのホワイトリストに含まれない)を使っている関係でエラーが発生します。テキスト抽出にjava.awt関連クラスは不要なので、使用個所を削りまくってGAEJ上で動作するjarを作りました。ベースにしたバージョンは1.7.1です。
デモサイトのソースコード(slim3)
public class UploadController extends Controller { @Override public Navigation run() throws Exception { BlobstoreService blobstore = BlobstoreServiceFactory.getBlobstoreService(); Map<String, List<BlobKey>> map = blobstore.getUploads(request); List<BlobKey> keys = map.get("pdfFile"); if (keys == null || keys.isEmpty()) { return html("<p>ファイルが選択されてないかも</p>", "utf-8"); } BlobKey key = new BlobKey(keys.get(0).getKeyString()); PDFParser parser = new PDFParser(new BlobstoreInputStream(key)); parser.parse(); PDDocument doc = parser.getPDDocument() PDFTextStripper stripper = new PDFTextStripper(); response.setContentType("text/plain; charset=utf8"); stripper.writeText(doc, response.getWriter()); blobstore.delete(key); return null; } }