2011-04-27 78 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等搜索索引器中的过滤器。

相关问题