- 自鯖の状況
- 1st Server
- 1st@Apps::Apache
- 1st@Apps::MYSQL
- 1st@Apps::PostgreSQL
- 1st@Apps::W2Ch利用状況
- 1st@Apps::W2Chセッション数
- 1st@Apps::iptables
- 1st@Sensor::CPU温度
- 1st@Sensor::FAN回転数
- 1st@System::CPU
- 1st@System::CPU-0
- 1st@System::CPU-1
- 1st@System::CPU-2
- 1st@System::CPU-3
- 1st@System::LoadAvg
- 1st@System::Memory
- 1st@System::Process
- 1st@System::SWAP
- 1st@System::Uptime
- 1st@System::Users
- 1st@Traffic::Ether0
- 1st@Traffic::PPP0
- 1st@Traffic::Wlan
- iptables::ログ集計
- 1st Server
XPDF::PDF資料をnamazuにたべさせる Part2
今回は、実際のPDFをnamazuに食べさせるところと、はき出させるところを作ります。
大枠の流れとしては、
1.PDFをテキスト変換する
2.テキストをnamazuに食べさせる
3.PHPを使って、検索ページと表示ページを作る
です
------------------------------------------
1.PDFをテキスト変換する
とりあえず、何でも自動化するということで、特定フォルダにPDFを置くことで、cron起動されたバッチが、テキスト変換するところまで、ざっと作ってみました。
以下、ソース:chgtxt.sh
#!/bin/csh set DOCDIR=/srv/www/htdocs/tech-docs set ENDFILE=endfile cd $DOCDIR cd $DOCDIR/PDF if ( -f $DIR ) then else echo "#### Convert from PDF to Text in $DIR ###" cd $DIR if ( -e $ENDFILE ) then else if( -e $FILE ) then echo " ## Convert PDF 2 Text: $FILE ##" pdftotext -enc EUC-JP $FILE endif echo "#### move to Text file ###" mv *.txt $DOCDIR/TXT/$DIR echo "#### Make Page File ###" cd $DOCDIR/TXT/$DIR $DOCDIR/pagelist.pl $FILE echo "### Move Text File ###" mv *.txt $DOCDIR/backup/ endif endif cd $DOCDIR exit 0
PDFフォルダ配下に、変換したいPDFをフォルダにまとめます。
このフォルダは1回の変換で使いたいPDFのみをいれてください。
今後変換したいPDFが増えたら、新たにフォルダを作ってください。
既に作成されたフォルダは、endfileというファイルがあると、
このシェルは、テキスト変換対象外として、認識します。
2.テキストをnamazuに食べさせる
つづいて、変換されたテキストファイルが、TXTフォルダ配下に入っていますので、これを、namazuでINDEX化します。
んで、ソース:mknmz.sh
#!/bin/sh /usr/local/bin/mknmz -f /srv/www/htdocs/tech-docs/.mknmzrc -O /usr/local/var/namazu/index /srv/www/htdocs/tech-docs/TXT /srv/www/htdocs/tech-docs/docs
まあ、簡単w
3.PHPを使って、検索ページと表示ページを作る
これは、左のメニューにある、技術資料検索::namazu の内容です。
特に特殊なことはしていません。
といっても、ソース全部のせると大変なので、ポイントとなるところを。
(といっても、ネットで見つけたソースをいじっただけなので、私が作った部分はほとんどないです。どこから拾ったか忘れてしまったので、この場を借りて、
ソースの作者様ありがとうございます m(__)m)
URL変換部分
実際には、TXTファイルへのリンクとなってしまうため、これをPDFへのリンク且つ、ページ指定になるように変換します
//URL置換文字列のHash "http://www.nakachangoo.net/tech-docs/\\1" );
って、この部分しかなかった(;^_^A アセアセ…
というわけで、あとは、新しいPDFを入手したら、フォルダ作って、置いて、シェル実行して、INDEX化したら、取り込まれました!になるわけです。

