XPDF::PDF資料をnamazuにたべさせる Part2

今回は、実際のPDFをnamazuに食べさせるところと、はき出させるところを作ります。

大枠の流れとしては、
1.PDFをテキスト変換する
2.テキストをnamazuに食べさせる
3.PHPを使って、検索ページと表示ページを作る
です
------------------------------------------
1.PDFをテキスト変換する
 とりあえず、何でも自動化するということで、特定フォルダにPDFを置くことで、cron起動されたバッチが、テキスト変換するところまで、ざっと作ってみました。

以下、ソース:chgtxt.sh

  1. #!/bin/csh
  2.  
  3. set DOCDIR=/srv/www/htdocs/tech-docs
  4. set ENDFILE=endfile
  5.  
  6. cd $DOCDIR
  7.  
  8. foreach DIR (`ls ./PDF/`)
  9. cd $DOCDIR/PDF
  10. if ( -f $DIR ) then
  11. else
  12. echo "#### Convert from PDF to Text in $DIR ###"
  13. cd $DIR
  14. if ( -e $ENDFILE ) then
  15. else
  16. foreach FILE (`ls *.pdf`)
  17. if( -e $FILE ) then
  18. echo " ## Convert PDF 2 Text: $FILE ##"
  19. pdftotext -enc EUC-JP $FILE
  20. endif
  21.  
  22. echo "#### move to Text file ###"
  23. mkdir $DOCDIR/TXT/$DIR
  24. mv *.txt $DOCDIR/TXT/$DIR
  25.  
  26. echo "#### Make Page File ###"
  27. cd $DOCDIR/TXT/$DIR
  28. foreach FILE (`ls *.txt`)
  29. $DOCDIR/pagelist.pl $FILE
  30.  
  31. echo "### Move Text File ###"
  32. mv *.txt $DOCDIR/backup/
  33. touch $DOCDIR/PDF/$DIR/$ENDFILE
  34. endif
  35. endif
  36. cd $DOCDIR
  37.  

PDFフォルダ配下に、変換したいPDFをフォルダにまとめます。
このフォルダは1回の変換で使いたいPDFのみをいれてください。
今後変換したいPDFが増えたら、新たにフォルダを作ってください。
既に作成されたフォルダは、endfileというファイルがあると、
このシェルは、テキスト変換対象外として、認識します。

2.テキストをnamazuに食べさせる
つづいて、変換されたテキストファイルが、TXTフォルダ配下に入っていますので、これを、namazuでINDEX化します。

んで、ソース:mknmz.sh

  1. #!/bin/sh
  2.  
  3. /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へのリンク且つ、ページ指定になるように変換します

  1. //URL置換文字列のHash
  2. $baseUrlHash = array( "http://www.nakachangoo.net/tech-docs/PDF/\\1/\\2.pdf#page=\\3",
  3. "http://www.nakachangoo.net/tech-docs/\\1"
  4. );

って、この部分しかなかった(;^_^A アセアセ…

というわけで、あとは、新しいPDFを入手したら、フォルダ作って、置いて、シェル実行して、INDEX化したら、取り込まれました!になるわけです。

Tags for XPDF::PDF資料をnamazuにたべさせる Part2


■お知らせ
鯖の電気代が2万/月を超えました。新しい鯖を購入して電気代を下げるようにしましたが、ご協力いただける方がいらっしゃいましたら、よろしくお願いします。
カンパしなくても、鯖は存続しますので、WebMoney余ってるよ~という方だけ、よろしくお願いしますm(__)m
WebMoney ぷちカンパ
カスタム検索