2010-03-08 52 views
6

我試圖使用iFilter從PDF文件中提取文本。如何使用特定的PDF IFilter

與Adobe Reader一起發佈的Adobe PDF iFilter非常糟糕,爲許多PDF文檔返回HRESULT E_FAIL消息。

FoxIt PDF IFilter幾乎在我用於測試的所有PDF上都很精美。

問題是,每次Adobe Updater運行時,它都會用蹩腳的Adobe IFilter替換出色的FoxIt IFilter。

我一直在使用LoadIFilter方法獲取PDF文件的註冊IFilter。有沒有辦法強制Win32 API加載FoxIt IFilter而不是Adobe IFilter?

NOTE:這個問題關於determining which IFilters are installed問一個相關但不相同的問題。

回答

0

除了上面的方法之外,您可以簡單地檢查系統範圍使用的IFilter DLL以獲取您感興趣的文件類型。

如果您發現Adobe DLL而不是Foxit DLL,請更改您的文件類型的PersistentHandler引用的密鑰的InprocServer32條目。這可能需要特殊權利,具體取決於您使用的系統。 然後啓動IFilter的使用。

看一看怎樣的IFilter的DLL被選擇的簡單解釋:

http://msdn.microsoft.com/en-us/library/ms692488