2011-04-27 51 views
0

我正在將應用程序從.NET/Windows轉換爲mono/linux,但我找不到任何有關IFilter的信息。我知道Office的Office IFilter,Adobe和FoxIt IFilter for PDF,但不知道它們是否適用於Linux和/或Mono,或者是否存在某些功能相當的內容(用於從專有表單中提取純文本) 。在Mono/Linux上是否有與IFilter相當的功能?

+0

我實際上是希望從單聲道的pdf/doc/rtf中提取純文本,並且不想依賴特定於Windows的API。有什麼替代方案可以使用嗎? – 2011-04-29 13:51:04

回答

0

不確定這是您正在使用的內容,但根據MSDN IFilter(與索引服務相關)已過時。因此,如果它在Mono中被重新實現,我會感到驚訝。

也就是說,很多 .NET程序集可以放入Mono應用程序而無需重新編譯。雖然第三方DLL的情況似乎比微軟的情況更爲可能,但可能值得一試,看看它是否適用於您的情況。

http://msdn.microsoft.com/en-us/library/ms691105(v=vs.85).aspx

+5

這只是索引服務已過時。更換Windows搜索仍使用IFilter:http://msdn.microsoft.com/en-us/library/bb266451(v=VS.85).aspx – Gabe 2011-04-27 18:02:14

1

至於我可以告訴IFiler技術在最近的應用程序仍在使用。在其原始設計中(大約在1996年或之前),這些是用C或C++編寫的COM對象。過去幾年中可用的大多數IFilter在64位上不起作用。如果您在Windows之外構建應用程序,則可能需要創建加載並調用IFilter的代碼。

想要使用IFilter的任何實現都需要一些接口來加載並調用內存中的IFilter,將其指向一個文件並將其踢入內存中,然後再踢幾次來拉取文本結果來自內存緩衝區。使用IFilter的現代實現在泄漏發生時使用更高級的內存保護來刷新內存,這在C編碼中並不少見......在互聯網上可以找到幾個樣本(從2003年或2005年左右開始),只要您尊重舊式的界面。

希望這有幫助。

4

IFilter是本機Windows API,而不是.NET API。

在Linux上,您可以使用Beagle等搜索索引器中的過濾器。

相關問題