[ros-dev] SmartPDF (aka SumatraPDF) in rosapps, linking problems

Klemens Friedl frik85 at gmail.com
Sun Sep 30 20:30:58 CEST 2007


> But why this been imported into our repositry?
> What interest do we have in some 3rd party pdf reader?

The idea was to have some lightweight apps similar to the vision of
Win95. All recent operating system have a PDF viewer as it's (beside
DOC) the number one document format. My plan was to remove one of the
pdf engines and add office format support (ole2, using libgsf
library), so we would have a very lightweight document viewer app. An
shell extention could then add preview & metadata of documents to
explorer/shell.

I have also plans for a indexing service that provides system wide
search and an interface to be compatible with MS iFilter, WordBreaker,
etc.
The current plan for such an indexing service is to use SQLite3 and
CLucene. SQLite3 is a public domain very lightweight SQL engine that
is used in a lot of software (I bet it is already in use on all of
your computers and your cellphones, mp3 players, etc.). CLucene is a
C++ port of the famous Java fulltext search engine. SQLite3 got a
fulltext engine plugin itself, thanks to a google dev, called "FTS".
It's currently limited but looks promising too.
Of course, MS neither use SQLite nor CLucene for their indexer, but
use their own database engine, based on SQL products that they have
bought a long time ago.
Writing a new database with fulltext support from scratch is not
feasonable, and giving the fact that all recent software switched to
SQLite (several new Microsoft software and games, google gears, new
GMail, Google Reader, Google Desktop, Adobe Lightroom, several Apple
software (coredata OS core lib, Spotlight search engine, iPhoto,
etc.), I think it's ok to choose it.

An iFilter dll would use the pdf engine to extract the text and the metadata.
I have planned to add some lightweight Win32 apps (E-Mail client, IRC
client, PDF/Office-format viewer).
As a PDF iFilter would be a needed anyway (at least in my opinion), so
poppler is required too, and then a lightweight PDF viewer is just a
matter of a few more source files. (currently, it consists of two pdf
engines, one needs to be removed, one is optional anyway).

The overall goal is that is to have a handful of basic apps similar to
Win95 (paint, email, etc.) and a system wide search that indexes
several important formats (plugin based, with iFilter interface to be
compatible with MS search products).


If a pdf vieweror a document viewer in general don't fit in "rosapps",
then move it somewhere else, delete it or revert the commit(s).

If someone thinks that a indexer is not needed, and Google Desktop or
any other third party desktop search engine is enough. Then you have
probably never used a so called "desktop search". Please try out one,
and you will see none of them even comes close to Apple Spotlight on
MacOS X 10.4 (Tiger), and remember even Spotlight isn't that great
(search results, boolean search), Google WebSearch is still a lot
faster and delivers better search results.
I am planning on the indexer for abouzt 1 1/2 years and the current
status is that almost all third party libs compile with the reactos
build environment in my local tree. Additionally, several test apps
already work fine. One major issue is how to write the IDL for the
iFilter interface. Another one is how to parse the search-input and
send it to the right search engine and combine the results
efficiently. But that's something for another ML-thread.


Klemens


More information about the Ros-dev mailing list