Jump to article
< >

Active GUI element

Static GUI element

Code

WPS object

File/Path

Command line

Entry-field content

[Key combination]

more

Lucide
A new Document Viewer for eComStation

by Robert Henschel, © July 2006

Robert HenschelRobert Henschel has been an OS/2 user since 1995 and runs the OS/2 User Group Dresden. He is studying computer science at the Technical University of Dresden and works on optimization of programs for SGI and NEC super computers. In 2005, he was chairman of the Warpstock Europe team in Dresden.

Serenity Systems International and netlabs.org have released a new document viewer for eComStation called Lucide. The application can display PDF and other documents in a fast way and can serve as a replacement for Acrobat Reader on eComStation. The article gives an introduction into the Lucide project and describes the first experience with a beta version of Lucide.

Lucide is a plugin based document viewer. In the tested beta version, plugins for PDF and DJVU documents as well as JPG images are included. In general, Lucide can deal with any kind of format if a developer has created a Lucide plugin for the format. So Lucide should not be seen as only a PDF viewer, even though that will probably be the most used feature in the current version.

Why Lucide?

The short answer to this question is: Because a modern PDF Viewer is needed for eComStation! So why not use the proven technique to convert the current version of Acrobat Reader for Windows to eComStation with ODIN or the InnoTek Runtime?

The current version of Acrobat Reader for Windows is not well-known for its performance and the loading time has not really improved over the last versions. Especially when Acrobat Reader is only used to view documents, the initial loading time is rather bad. That is the reason why another alternative was needed.

There are various ways to speedup Acrobat Reader. For further information, please read Stripping Down Adobe Acrobat Reader for quick loading and browsing by Harry Travis in the VOICE Newsletter of April 2005.

Evince and Xpdf are widely used PDF viewers on the Linux platform. Both viewers use a different PDF library in the background. Since both viewers are noticeably faster than Acrobat Reader, the basic idea for Lucide was to port one of the two PDF libraries to eComStation and then write a native user interface that uses the ported PDF library. In the end, the Poppler library that is used by Evince was ported to eComStation.

The Project

When the project was first discussed between Serenity Systems International and netlabs.org, it became clear that real progress would only be possible if a developer was hired for the job. After looking around for a short time, Eugene Romanenko could be convinced to work on the project. eComStation users may know Eugene's other software projects, like the eComStation VNC Server and PMDownloader. Serenity Systems International sponsors the project while netlabs.org takes care of the required infrastructure, like source code repository, bug tracker, and so on.

Right at the start of the project, the team realized that writing a document viewer that would only work with one kind of document is a waste of time. This was the reason for creating a plugin interface for Lucide that allows for connecting arbitrary libraries. As a first example, plugins to display DJVU documents and JPG images were created. Both plugins are based on ported libraries and are not written from scratch. Lucide plugins use the available SOM infrastructure of eComStation.

A big advantage of this strategy is that it allows to concentrate on the essential parts of an application. eComStation developers should not recreate PDF or DJVU libraries from scratch, there simply are not enough developers on our platform to make that feasible! eComStation developers should concentrate on integrating software into the WPS so that also ported software applications can be used the normal way on eComStation. Linux developers will continue to extend and enhance the poppler library. Such changes can be made available to eComStation users in a very short time frame, simply by updating the Lucide PDF plugin.

Present and Future

For this article Lucide Beta 1 and 1.1 were tested. Until version 1.0 becomes available, at least another Beta version, Beta 2, and a release candidate, RC, will be published. Besides cosmetic changes like new icons there will also be changes in the user interface. PDF documents will display small thumbnails and the full screen mode will also be adjusted again. The installation of Lucide will be changed to a WarpIN archive and finally printing will be implemented. Everybody can follow the development of Lucide in the TRAC repository of Lucide on the netlabs.org server.

Since Serenity System International is paying 100% of the costs of the project, SSI has a big influence on what is developed and how. Netlabs.org, which manages the project from the technical side, is trying to make sure that Lucide is developed into a product that is on par or superior to solutions on other platforms. Users of Lucide can also influence the project. Feature requests as well as bug reports should be entered as Tickets in the TRAC repository of Lucide.

Lucide is among the first eComStation projects that directly benefits from the Voyager project of netlabs.org. Voyager has created new interest in the SOM architecture and good WPS integration of applications. SOM is heavily used in the plugin interface of Lucide and interested developers can make themselves familiar with SOM through Lucide plugins.

Installation

The Readme document does not provide any information about how to install Lucide. Although the software is still in beta, it is no problem as the installation of Lucide is quite straightforward! For a quick test, it is enough to simply unpack the archive into a new directory and start lucide.exe. If Lucide should be used as a helper application, for example to display PDF documents from File Commander, the installation directory of Lucide must be in the LIBPATH and PATH environment variables in CONFIG.SYS.

The DJVU plugin requires the LIBC 0.6.1. If LIBC is not installed, the DJVU is not loaded and there is no error message displayed. The rest of the Lucide functionality and the other plugins can still be used as they do not require LIBC.

The main window of Lucide

Fig. 1. The main window of Lucide

When Lucide opens the first PDF document, a new configuration file for FontConfig is created. The system is scanned for all installed fonts and they are registered for later usage. This whole procedure is only necessary once.

The configuration file for FontConfig is created

Fig. 2. The configuration file for FontConfig is created

If the first load of a PDF document seems to take considerably longer than subsequent loads of PDF documents in the same Lucide session, this initial delay is most likely caused by always creating the FontConfig configuration file. The font information is stored in the HOME directory in the files .fonts.cache-1 and fonts.conf. Those two files should only be created once, the very first time that Lucide opens a PDF document. However, if the files are corrupt, Lucide recreates them every time. Simply deleting these two files should fix that problem and every PDF should load a lot faster in the future.

Features

Betas 1 and 1.1 of Lucide can display PDF, JPG, and DJVU files out of the box. Depending on the plugin, Lucide offers different functions for a loaded document. Because most users will use Lucide primarily as a PDF viewer, this feature is examined in detail.

From the three included plugins, the JPG plugin has the least functionality. JPG images can only be shown. There is no possibility to zoom or rotate images.

In addition to showing documents, the DJVU plugin has the capability to zoom. This makes it possible to expand a document to the width of the screen or even further. With this possibility, one can also spot small details in documents. Rotating DJVU documents is not possible. Nor it is possible to copy text or graphics from DJVU documents.

The PDF plugin has the most features. PDF documents can be zoomed and it should also be possible to rotate them. However, the latter is not implemented in Beta 1 of Lucide. It is also possible to mark text in PDF documents and copy it to the clipboard for use in other applications. Search is also implemented, but it is limited to the current displayed page. In contrast to Acrobat Reader 5, after an initial search all occurrences in the text are highlighted and it is not required to search again. In addition to the document itself, a small navigation panel is displayed on the left hand side that allows for easy navigation in the document. Just like in Acrobat Reader 5, three preset zooming levels exist that can be selected directly in the toolbar. In addition it is possible to select zoom levels between 12.5% and 1600%.

Meanwhile, another plugin has been released. Heiko Nitzsche is the first third-party developer to write a Lucide plugin! He has created a plugin that can display a large number of bitmap formats. It is based on the Generalised Bitmap Module, GBM, which Heiko maintains. You can read more about it on the GBM homepage.

With every document type switching to full screen is possible. In Beta 1, full screen means that not only the document is visible but also the menu and the toolbar. This concept of full screen should really be given a second thought.

Beta 1.1 fixes a couple of problems and implements a settings dialog for default page layout and zoom level.

PDF display in Lucide

Fig. 3. Displaying a PDF in Lucide [Larger image]

The startup time of Lucide is one of its most positive aspects. Especially when compared to Acrobat Reader 5 on eComStation, Lucide loads lightning fast! The load time for PDF documents does, of course, depend to a great deal on the actual content of the document, but for the test a 700 KByte document with 92 pages was loaded instantly and browsing through the document was very fast! In general, the speed of Lucide is equal to or better than Acrobat Reader 5.

Conclusion

For a first beta version, Lucide can already do quite a lot. Also, it is refreshing to see the development of a new native application for eComStation.

How good the project continues depends to a great deal also on the users. If the developer and the team has the feeling that nobody cares about Lucide, the motivation to add new features and fix bugs will of course decrease. Interest for Lucide cannot be shown by purchasing a license, but with active support for the project, for example by reporting bugs or suggesting changes and new features. There is also stuff to do for developers. From creating a WarpIN installer package to developing new plugins, there are enough possibilities to join development. Contact to the developer and other important information can be obtained from the TRAC repository of Lucide on the netlabs.org server.

Editing: James Moe
References

Lucide
Developer: netlabs.org
Price: Free for eComStation users with access to the Betazone

Lucide Download: eComStation Betazone (can be reached after login at http://www.ecomstation.com/)
Lucide homepage / TRAC repository: http://svn.netlabs.org/lucide
Lucide bug tracker: http://svn.netlabs.org/lucide/report/1
Lucide plug-in source code: ftp://ftp.netlabs.org/pub/lucide
Mailing list for Lucide users: http://news.gmane.org/gmane.org.netlabs.lucide.general
Mailing list for developers: http://news.gmane.org/gmane.org.netlabs.lucide.devel
LIBC 0.6.1: ftp://ftp.netlabs.org/pub/gcc/libc-0.6.1-csd1.zip
Poppler homepage: http://poppler.freedesktop.org/
netlabs.org: http://netlabs.org/
Article Stripping Down Adobe Acrobat Reader for quick loading and browsing: http://www.os2voice.org/VNL/past_issues/VNL0405H/vnewsf4.htm
OS/2 Kit for Acrobat Reader 5.1 Preview 1: http://www.innotek.de/products/acrobatos2/acrobatos2general_beta_e.html
OS/2 Kit for Acrobat Reader 4.05: http://www.innotek.de/products/acrobatos2/acrobatos2general_e.html