Я пытаюсь извлечь текст из файлов PDF с помощью iFilter.
Adobe PDF iFilter, который распределяется с Adobe Reader, ужасен, возвращаясь HRESULT E_FAIL
сообщения для многих документов в формате PDF.
FoxIt PDF IFilter работает красиво над фактически всеми PDFs, которые я использовал для тестирования.
Проблема состоит в том, что каждый раз выполнения Adobe Updater, это заменяет потрясающий FoxIt IFilter дрянным Adobe IFilter.
Я использовал метод LoadIFilter для получения зарегистрированного IFilter для файлов PDF. Существует ли способ вынудить API Win32 загрузить FoxIt IFilter вместо Adobe IFilter?
Примечание: Этот вопрос об определении, какие IFilters установлены, спрашивает связанное - но не идентичный - вопрос.
Кажется, что IFilter зарегистрирован как COM-объект с окнами, поэтому у вас должна быть возможность просто создать его экземпляр с помощью COM.
Из http://msdn.microsoft.com/en-us/library/ms692565 : структура DLL такова, что у нее есть IFilter и IClassFactory
Вы должны иметь возможность создать экземпляр IClassFactory (учитывая CLSID)
проверить http://msdn.microsoft.com/en-us/library/ms684007 http://msdn.microsoft.com / en-us / library / ms680760