自炊した電子書籍で裏表紙からバーコードを自動で取得する方法
自炊した電子書籍で裏表紙からバーコードを自動で取得する方法の説明です。
いろいろとスキャンをしていて、タイトルの名前いれがめんどいなぁってことでせっかくなのでバーコードを自動でスキャンしてくれたらいいなってことで、PHPで作ってみました。
PDFを解析して、バーコードナンバーをテキストで取得することができます。
あとはこれをAmazonのAPIなどに投げれなOKです。
必要なライブラリ
- FPDF
- PHPでPDFを出力するためのライブラリです。
- Setasign Downloads of FPDI and FPDF_TPL
- PHPでPDFを読み込むためのライブラリです。
- ZBar bar code reader - Browse /zbar/0.10 at SourceForge.net
- 画像からバーコードを自動で検出します。
あとImageMagick ( と peclのimagick ?) が必要になると思います。
ImageMagick と ZBarのインストールはこちらを参照してくださいませ。
index.php
PHPの担当はPDFファイルから最後のページを取得して、画像変換と画像解析の外部コマンドをたたきます。
<?php //var_dump( $argc ); //var_dump( $argv ); if( $argv[1] == "" ){ exit; } require_once('fpdf.php'); require_once('fpdi.php'); //Get pdf file name $file = escapeshellcmd( $argv[1] ); $basename = basename( $file ); //Get pdf num page $tmp_pdf = new FPDI(); $pagecount = $tmp_pdf->setSourceFile( $file ); //Output last pdf page $write_pdf = new FPDI(); $write_pdf->setSourceFile( $file ); $tmp_info = $write_pdf->importPage( $pagecount ); $write_pdf->addPage(); $write_pdf->UseTemplate( $tmp_info ); $write_pdf->Output( "backcover_{$file}" , "F" ); //Let's convert pdf 2 jpg ( 300 DPI ) exec(" convert -density 300x300 backcover_{$file} backcover_{$basename}.jpg " ); //Scan barcode from jpg image echo ` zbarimg backcover_{$basename}.jpg`; ?>
実行と結果
以下のようにPDFファイルを指定して実行します。
$ php index.php web.pdf
すると画像を解析して、以下のようにバーコードを返してくれます。
EAN-13:1923055028005 EAN-13:9784873114460
参考リンク
参考になる本
- 作者: 小川雄大,柄沢聡太郎,橋口誠
- 出版社/メーカー: 技術評論社
- 発売日: 2010/11/12
- メディア: 大型本
- 購入: 32人 クリック: 1,065回
- この商品を含むブログ (59件) を見る
PHP 逆引きレシピ (PROGRAMMER'S RECiPE)
- 作者: 鈴木憲治,安藤建一,山田直明,八木照朗,山本義之,河合勝彦
- 出版社/メーカー: 翔泳社
- 発売日: 2009/06/30
- メディア: 単行本(ソフトカバー)
- 購入: 42人 クリック: 291回
- この商品を含むブログ (30件) を見る