お蔵入りしていたコード。 PDFを検索したときの結果には画像でスニペットを返した方が見やすいかも、というアイディアを実現しようとしたもの。なぜ画像の方がいいかというと検索語近辺のテキストをスニペットにしても、表だったりPDFの中で文字列が表示される順に記述されていなかったときに脈絡がなくて役に立たないことがあるから。 さて、デモコードはまずユーザからURLで指定されたPDFファイルをサーバでダウンロード、テキストを抽出する。テキストにはPDF上での位置情報が付与されているので、それを含めてJSON形式でJavaScriptのコードに直接出力。文字列の検索はJavaScriptでやって、ハイライトは先の位置情報から画像の上にCSSで乗せる。 現状では、重い、PNGへの変換精度がいまいち、検索の機能が貧弱、等々実用化するまでには問題がたくさんある。 PDFからテキストを抽出、PNGに変換するところにはいくつか既存のアプリを使っている。 <?php require_once 'Zend/Uri.php'; define('PDF_SAVE_PATH', '/tmp/pdfsearch/'); define('PNG_SAVE_PATH', '/var/www/zuzara.org/pdfsearch/png/'); dl('json.so'); $errorMessage = ''; $pdfUrl = (isset($_GET['pdfurl']) ? $_GET['pdfurl'] : ''); $seed = ''; $images = array(); $data = array(); if ($pdfUrl != '') { try { $uri = Zend_Uri::factory($pdfUrl); if ($uri->valid() === true) { $seed = md5($pdfUrl); $pdfFile = PDF_SAVE_PATH . $seed [...]
Recent Posts
Categories
Archives
- April 2011
- November 2010
- October 2010
- July 2010
- June 2010
- January 2010
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- February 2009
- January 2009
- November 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005