Issue (問題点)
1つの PDF ファイル内で単語を検索するのではなく、特定のフォルダ内の全ての PDF 文書に対して単語検索を行うことを考えています。
どのようにすれば実現できますか。
Solutions (解決方法)
Acrobat Core API の PDWordFinder オブジェクトを利用することによって、対象とする1つの PDF ファイル内で単語を検索(テキスト検索)することができます。よって、指定されたフォルダに含まれる PDF ファイルを自動的に一つずつオープンしていき、個々のファイルに対して PDWordFinder による単語検索を行っていくことが一つの解法となります。
上記とは別に、Windows の Indexing Service を利用して、指定の単語を含む PDF 文書を列挙することも可能です。
1) 下記のページから Adobe PDF IFilter v5.0 をダウンロードして、インストールしてください。
http://www.adobe.co.jp/support/downloads/acwin.html
IFilter v5.0 を Windows XP の環境にインストールする場合、下記の情報にご注意ください。
文書番号 511266 Windows XP での Adobe PDF IFilter の動作について
2) Windows の [管理ツール] / [コンピュータの管理] で、インデックスサービスの設定をしてください。
- インデックスサービスを右クリックして、[新規作成] / [カタログ] を実行します。
- カタログ名を入力し、インデックスファイルを保持するパスを指定して [OK] します。
(添付のサンプルプロジェクトを動作させるためには、カタログ名を "testIFilter" としてください)
- ディレクトリを右クリックして、[新規作成] / [ディレクトリ] を実行します。
- パスの欄に、検索対象の PDF ファイルが含まれるディレクトリを指定して [OK] します。
3) Windows の [管理ツール] / [サービス] で Indexing Service を再起動してください。
4) Windows の [管理ツール] / [コンピュータの管理] で、手順 2) において作成したディレクトリを選択し、[すべてのタスク] / [再スキャン(完全)] を実行します。
この操作の後、実際にインデックスが作成されるまでには待ち時間があります(状況により、待ち時間は異なります)。
5) 添付の Visual Basic サンプルプロジェクトを実行します。検索したいキーワードを入力して [検索] ボタンをクリックすると、対象フォルダ内の PDF ファイルのうち、そのキーワードを含むものの一覧が表示されます。
この解法のメリットは下記の文書に記載されている通りであり、サーバ上での文書検索システムの構築に適しています。
http://www.adobe.co.jp/support/downloads/pdfi_1276.html
Additional Information (追加情報)
Adobe PDF IFilter v5.0 について、その検索結果のPDF文書をAcrobatビューアに表示した場合、検索ヒット結果の単語(テキスト)をハイライト表示する機能はサポートされていません。