64ビット版Windows 7でPDFのインデックス化を可能にする

先ほど<プロパティとファイルのコンテンツのインデックスを作成する>に関して簡単に説明しましたが、必ずしもファイルの中身をインデックス化できるとは限りません。そもそもWindows 7では、「IFilter」というファイルからテキスト内容を取り出すためのロジックを使用していますので、そのファイルに対するIFilterが必要となります。

Windows 7には「%ProgramFiles%\Common Files\microsoft shared\Filters」フォルダ、もしくは「%ProgramFiles(x86)%\Common Files\microsoft shared\Filters」フォルダを用意し、Microsoft謹製のフィルタファイルを格納していますが、「%windir\System32」フォルダに格納されるファイルや、アプリケーション独自のIFilterが導入されることもあり、お使いのWindows 7でどのIFilterが導入されているか確認する術はありません(レジストリ上で検索する方法もありますが、コツが必要なためお勧めできません)(図17~18)。

図17 Windows 7標準のIFilterは、「%ProgramFiles%\Common Files\microsoft shared\Filters」フォルダ、もしくは「%ProgramFiles(x86)%\Common Files\microsoft shared\Filters」フォルダや、「%windir%\System32」フォルダなどに格納されます

図18 プロパティダイアログの<詳細>タブを開きますと、同ファイルがIFilterであることが確認できます

そこで試して頂きたいのが「IFilter Explorer」というツール。文字どおりWindows OSに登録されたIFiltersの一覧表示を行なうツールですが、残念ながらWindows 7をサポートしていません。最終更新日も2006年8月と今後の発展を期待できませんが、筆者が試した限り32/64ビット版Windows 7上で動作を確認しましたので、今回紹介することにしました(図19~21)。

図19 公式サイトからダウンロードした「Citeknet.IFilterExplorer.x86.Setup-2.0.msi」をダブルクリックし、画面の指示に従ってセットアップを行なってください

図20 セットアップの最後にはWebページへのアクセスをうながされますので、<Visit http~>のチェックを外してから<Finish>ボタンをクリックしてください

図21 ただし環境によってはランタイムエラーが発生します。筆者が確認した限りでは、「Microsoft Visual C++ 再頒布可能パッケージ」を導入しても改善されず、Office 2010を導入した環境では正しく動作しました

同ツールで確認しますと、標準的な32ビット版Windows 7では「%ProgramFiles%\Common Files\microsoft shared\Filters」フォルダには「msgfilt.dll」「odffilt.dll」「offfiltx.dll」の3ファイル。「%ProgramFiles%\Windows Journal」フォルダには「JNTFiltr.dll」。

「%windir%\System32」フォルダには「ieframe.dll」「mimefilt.dll」「nlhtml.dll」「offfilt.dll」「Query.dll」「rtffilt.dll」「xmlfilter.dll」の5ファイルがiFilterとして登録されています。拡張子の列挙まで行なうと冗長になりますので、お手持ちのコンピュータでもお試しください(図22)。

図22 IFilter Explorerが起動しますと、IFilterの列挙が行なわれます。なお、ほかのタブは同製品を導入していない限り、参照する必要はありません

さて、IFilterの概略をつかんだところで64ビット版Windows 7の問題点について解説しましょう。検索機能を活用するにはファイル形式に対応したIFilterが必要ですが、64ビット版Windows 7をお使いの場合、定番のファイル形式であるPDFの内容を検索するには、ちょっとした作業が必要となります。

多くのユーザーが導入するAcrobat Reader 9には、PDF用IFilterが同こんされていますが、同フィルタは32ビット版のみ。つまり、32ビット版Windows 7では正しく動作しても、64ビット版Windows 7では動作しないのです(図23~24)。

図23 こちらはAdobe Readerを導入した32ビット版Windows 7。拡張子「.pdf」のIFilterが導入されています

図24 こちらはAdobe Readerを導入した64ビット版Windows 7。拡張子「.pdf」は登録されていますが、IFilterが導入されていません

そこで64ビット版Windows 7ユーザーは「Adobe PDF iFilter 9 for 64-bit platforms」を導入しましょう。リンクをたどって開きますと、米Adobe社の英文ページが表示されるため躊躇(ちゅうちょ)されるかもしれませんが、同ファイルは日本語を含む複数言語対応版ですのでご安心ください。同ファイルを導入することで、PDFの内容に対する全文検索が可能になります(図25~26)。

図25 Adobe PDF iFilter 9 for 64-bit platformsのダウンロードページにアクセスし、<Download Now>ボタンをクリックして「PDFiFilter64installer.zip」をダウンロードします

図26 ZIPファイルを展開し、「PDFFilter64installer.msi」を実行してセットアップを実行します。手順は通常のセットアップウィザードなので画面の指示に従って薦めてください

しかし、これだけではPDFを64ビット版Windows 7に完全対応させたとは言えません。試してみるとおわかりのとおり、PDFのサムネイルアイコンが表示されず、プレビューウィンドウによる内容表示も行なわれないのです。

これはレジストリに書き込まれたアプリケーションIDが異なるために発生する問題なのですが、Adobe側の改善がいまだ行なわれておりません。

そのため有志の方が作成した「Fixes for 64-bit Adobe Reader preview handler and thumbnails」をお試しください。これで自動的にレジストリの変更を行なうと同時にプレビューハンドラの修正が行なわれ、前述した問題が改善されます(図27~33)。

図27 ダウンロードページにアクセスし、「Adobe_Reader_x64_fixes_v3_000_installer.zip」をダウンロードしてください

図28 ZIPファイルを展開し、「Fixes_for_64-bit_Adobe_Reader_setup.exe」を実行してセットアップを実行してください

図29 導入コンポーネントの選択をうながされます。プレビュー機能やサムネイル機能に関する修正を行なう場合は両者を選択してください

図30 セットアップが完了したら、<Run Adobe~>にチェックが入っていることを確認し、<Finish>ボタンをクリックしてください

図31 これで「Adobe Reader preview handler x64 fixer」が起動します。Office 2010ベータ版を使っていた方は<Extra changes required~>にチェックを入れ、<Apply Fix>ボタンをクリックします

図32 これでサムネイルが有効になると同時に、PDFの全文検索が可能になりました

図33 [Alt]+[P]キーを押してPDFファイルを選択すれば、プレビューウィンドウに内容が表示されるようになります

阿久津良和(Cactus