CMFPdfDocument

 CMFDefault Content の中の File というのを使えば、PDF ファイルを、CMF Site の中に保存できるのですが、この場合、PDF ファイルの文面による検索(全文検索)ができません。

 PDF には、せっかくテキスト情報も(あるものも)あるのに、勿体無い、namazu のように、pdftotext を使うなどして、検索できるようにならないものかと思い、CMF Site で使う PDF 用の Product を作ってみました。(要 pdftotext)

 他のフォーマットのファイルであっても、ファイルからテキストを抽出するツールがあれば、同様の手法で検索できるようにできると思います。

 Plone では動かないと思いますが、このソースは参考になると思いますので、どなたかチャレンジしてみてください。

 CMF 1.3 で試しましたが、1.3.1 でも動作すると思います。

インストール

1.Xpdf のインストール

 必要なのは、 pdftotext だけなんですが、 詳しくは、 http://www.foolabs.com/xpdf/ を参照してください。Win32 の方は PDF 関連も見てみて下さい。Cygwin の方は、Windows 版をインストールするようにします。

2.Products のインストール

 CMFPdfDocument-0.1.tar.gz を lib/python/Products に展開します。

3.ソースの修正(必要な場合)

 pdttotext へのパスが、ソースで決めうちになっています。また、日本語 EUC で文字コードも決めうちしています。 pdftotext へのパスが違う場合や、EUC-JP 以外の文字コードで取り扱いたい場合、 PdfDocument.py の先頭の、PDFTOTEXT_CMD の値を変えるように、ソースを直接編集してください。

4.Zopeの再起動

 Zope を一旦、再起動します。

5.portal_types に portal PDF の追加

  1. CMF Site の portal_types を ZMI で開きます。
  2. 上のドロップダウン(Select type to add...)から、「Factory-based Type Information」を選択して、次の画面へ移行します。
  3. Id:「PDF」 と設定します
  4. Usedefault type information:「CMFPdfDocument: Portal PDF」を選択します
  5. Add ボタンを押下します

Zope メモ