PDF IFilter for x64 bit
Never get tired of this burning issue and all of the related questions so I decided to try and put all the answers in this one post.
Let's review the problem first: Adobe does not have a x64 version of the PDF IFilter for MOSS and so far there are no immediate plans from Adobe to develop one. The supported (and thus the safest) way to index PDF files is to use a 32 bit Windows Server version as our Farm's Index server and run the 32 bit version of this IFilter. Of courser, since we can only have one Index Server per farm, we're actually bound to crawl and index all of our items in 32 bit mode. Kind of sucks since crawling/indexing data is one of the classic things we'd want to do with our sweet 64 bit machine...
Let's start by clearing the official explanations out of the way. If you take a moment to think about it - there is no real technical reason why we can use the 32 bit PDF Filter in the 64 bit version of MOSS. Something here feels like a planned conspiracy, right? Well, after doing some digging up in internal Distribution Lists (ALA DL's) at Microsoft's network - I came across a very planned Microsoft's strategy for dealing with 32 bit binaries in 64 bit installations.We can sum it up with the words NOT SUPPORTED but I actually think the explanations for this strategy is pretty good.
The IFilter concept is pretty much based on allowing some 3rd party code run inside the Index process and as you can imagine, this could mean serious trouble form MOSS and the big guys from Redmond . For Example: if you install some IFilter that you downloaded or even wrote for some kind of file type and it turns out that IFilter is not thread-safe, this could damage and even kill the entire index process! So of course the MOSS team put some disaster-recovery code from all types of software problems but as always, we'd be better off never getting there at all.
On the other hand, there is no real alternative for Microsoft to prevent 3rd party code in the internal index process. Microsoft can't be responsible for writing all the IFilters in the world - this was (and should stay) the job of those 3rd parties that provided those file types. The only step Microsoft can take is to make sure that each IFilter will be installed on MOSS only if it was specified designed for the requested MOSS server and environment. In our case that means that only IFilters that were originally developed for 64 bit will be available for 64 bit Index Server...
Ok. So Microsoft's could have a point but hell - we want 64 bit Index servers! Well, no need to give up just yet. We have three approaches for trying to solve this critical issue. I like to call it "The Good, the Bad and the Ugly":
- The Good - Foxitsoftware IFilters: It seems that Foxitsoftware are actually in the process of creating a 64-bit IFilter (in addition to their 32-bit version they already have). This is very good right? The only problem is that dates are no where to be mentioned in their forums. Anyway, you can check it out here.
- The Bad - Pressure Adobe: Oh, This is my personal favorite (some will say it's actually the reason for writing this post).There is a petition going on to lobby Adobe to wake up and create the required IFilter. You can sign up here and help us put some huge pressure on Adobe until she'll create it for us. If you saw the great South Park Movie's - it's just like the main theme song: "Blame Canada!"
- The Ugly - Trying to bypass Microsoft's limitation - Well, I explained it's no a technical issue, right? So.... This solution is only for all you really hard core guys. Of course, I never tried it myself since it's not supported (and I'm a Microsoft guy that never does unsupported things!) but that "close friend of mine" (that's him again - that guy keeps popping in my posts...), he likes to live dangerously and he tried it for me. It's actually not too complicated. The main idea is to wrap the 32 bit IFilter in a 64 bit process and fool the 64 bit MOSS Index Server that everything is OK with this IFilter. This could be achieved using the dllhost.exe file. For those of you that never heard of it, Dllhost.exe is a process belonging to Windows and he is the one that manages all DLL based applications. You could use it as a surrogate host for the 32 bit IFilter and since it's part of the 64 Bit windows, you can totally avoid the 32 bit detection by MOSS. Pretty slick huh?
So, I Hope I cleared that issue a bit. Anyway, If you read up until now, you deserve a nice treat and here it is: For all you IFilter fans, this is really great site for online shopping IFilters. If you're tired of free-but-very-limited IFilters, you should know that you can always browse to the IFilter Shop and find some really cool things there. So make sure you have the company's Master Card and go ahead. Great IFilters for Open Office, Star Office, Project, WMA/WMV, zip, rar, chm, pdf and some more cool file formats.
Now this is really it,
Next time,
Adir Ron.
UPDATED 4/5/07: Recently, there was a huge update for this issue. For more details - Click here...