[dot] The Road to KDE 4: Okular and Ligature Document Viewers

Dot Stories stories at kdenews.org
Wed Feb 14 12:40:24 CET 2007


URL: http://dot.kde.org/1171453163/

From: Troy Unrau <troy.unrau at gmail.com>
Dept: through-the-looking-glass
Date: Wednesday 14/Feb/2007, @03:39

The Road to KDE 4: Okular and Ligature Document Viewers
=======================================================

   Focusing again on applications this week, specifically I'll look at
two of the promising document viewers for KDE 4, Okular
[http://okular.org/] and Ligature
[http://websvn.kde.org/trunk/KDE/kdegraphics/ligature/].   They are two
of the rising stars of KDE 4, but they both have their  roots as KDE 3
applications that have grown up. Read on for more...

     In the past, KDE has had a wide variety of programs designed for
viewing all sorts of file formats, and using the KParts technology of
KDE, these viewers were able to be embedded into other KDE applications
such as Konqueror as and when they were needed. Supported formats
included TIFF, PDF, PostScript, fax, DjVu files, and many more. okular
and Ligature have grown up from some of these earlier designs to become
much more than simple document viewers.

     Historically, KDE has shipped with a program called KGhostView,
which used the GhostScript backend to render PDF and PostScript files
for display. KDE has even used it as the Print Preview utility. What
follows is a shot of KGhostView in action for KDE 3.5.6. Please note
that some of the font rendering glitches may be due to the font
selection of my distribution, and are not necessarily a reflection on
KGhostView's ability to render this file.


 [http://static.kdenews.org/dannya/vol7_356_kghostview.png]
     In the KDE 3 series, a new contender emerged for viewing PDF files
that was much faster than KGhostView. This new program, KPDF, has since
eclipsed KGhostView in many important areas, like functionality, speed,
and so on. KPDF is shipped with many modern distributions as the default
PDF viewer for KDE. Below is the same file as viewed with KPDF.


 [http://static.kdenews.org/dannya/vol7_356_kpdf.png]
     From personal experience, KPDF has been the subject of some of the
'oh wow!' type experiences I've had while using KDE. I've clicked on web
links to PDF files that specify 'frame' as their target, and had KPDF
embed quickly and seamlessly, so much so that for a moment I forgot that
the frame wasn't HTML anymore.

     It also has quite a few advanced features that KGhostView never
really pulled off, such as text searching, copy and paste from PDF, and
more. It is also many times faster at rendering, especially when loading
PDF files containing a lot of vector imagery. I use a lot of maps in my
work, which often ship as PDF files - using KGhostView to view these
files was incredibly slow, as you could literally watch the vectors
being drawn on the map. KPDF would load the same map visible
instantaneously, letting me do my work instead of waiting for the
computer.

     KPDF recently made the decision to broaden its support and start to
view files of types other than simply PDF, partially thanks to coders
sponsored by Google's Summer of Code program. The main reason they
decided to do this inside KPDF instead of starting new, individual
applications is that KPDF already had many advanced features implemented
that didn't necessarily need to be duplicated for these other file
formats. To more accurately reflect its broadened scope as a viewer for
many file formats, it has been rebranded as 'okular'.

     Users of KDE 4 are in for a treat with both okular and Ligature, as
they are both shaping up to support a wide variety of (occasionally
overlapping) media formats. But since they can both be embedded into KDE
applications using standard interfaces, a user should be equally happy
using either one of these viewers. I'll talk about okular first, since I
have more information sources for it. Huge improvements are noticeable
in okular over the already very functional KPDF. So far, it looks to be
one of the best applications of KDE 4.

     Pino Toscano (pinotree on irc.freenode.org) is the lead developer
of okular. Currently it is being developed in KDE SVN and its sources
are available in  /trunk/playground/graphics/okular
[http://websvn.kde.org/trunk/playground/graphics/okular] for anyone who
is interested in trying it out. It is already quite stable in the KDE 4
environment - actually it is one of the most stable KDE 4 applications
I've had the pleasure of testing so far. It is also known to be building
as part of the KDE/Mac packages. Benjamin Reed submits the following
screenshot showing okular in action on the Mac:


 [http://static.kdenews.org/dannya/vol7_4x_mac_okular.png]
     He also adds: "Holy crap, okular is fast on OS X. No more Acrobat
for me! :)"

     I didn't test all of these formats myself, but according to its
Supported Formats [http://www.okular.org/formats.php] list at the okular
website, it already has full or partial support for the following 11
document types: PDF, PS, TIFF, CHM, DjVu, DVI, XPS, OOo, FictionBook,
ComicBook and standard graphics files. Work continues on making sure
that support for all of these formats is flawless, and more formats may
be added down the road. The okular that is released alongside KDE 4.0
may or may not have all of these formats enabled, depending on their
stability at that time, as well as choices that your distribution may
make.

     Below is a shot of okular viewing the ComicBook format, often used
to distribute comics online. Indeed, okular may end up becoming one of
the most popular ComicBook viewer applications, especially considering
how many platforms it will run on courtesy of KDE 4.


 [http://static.kdenews.org/dannya/vol7_4x_okular.png]
     Pino has shown his willingness to work with the usability folks
[http://www.okular.org/news.php#itemokularjoinsTheSeasonofUsabilityproject]
to help improve the ease of use of okular, and it is now part of the
Season of Usability [http://dot.kde.org/1170202411/] project. It will
likely see a fairly-thorough overhaul of many interface elements before
KDE 4.0 is released which can only make this application even better.

     The other contender for your document viewing needs in KDE 4 is
Ligature, recently renamed from KViewShell. It lives in the kdegraphics
module, so it is currently the default viewer for the files that it
supports. It could however be overridden such that okular is used by
anyone who prefers using okular for a given format. The only reason I
can find for Ligature to be in the kdegraphics module rather than okular
is historical - KViewShell (which Ligature is based on) was part of
kdegraphics in the past. However, this doesn't mean KDE is shunning
okular either: for example, Amarok is one of KDE's best applications,
though it doesn't reside in the official kdemultimedia package.

     Ligature currently sports support for PDF, PostScript, EPS, fax,
Tiff, DjVu, and TeX files based on the plugins available in SVN. I'm
under the impression that 'fax' is for a sequential image type format
using TIFF files. Its predecessor, KViewShell did not have support for
several of these formats in the main kdegraphics branch, but a separate
branch exists for these formats for KDE 3.5.x.

     I tried to get a screenshots showing Ligature displaying PDF files,
but it wouldn't load them. I tried a PostScript file, and it loaded it
but did not display anything. So, I had to resort to a rather boring DVI
file in order to show off the current state of the user interface, but
this does not show off its rendering capabilities very well.


 [http://static.kdenews.org/dannya/vol7_4x_ligature.png]
     It does bear a close resemblance to okular as far as its user
interface is concerned. This is mostly due to the fact that they utilise
the same standard Qt and KDE libraries to draw many of the user
interface elements. Since I could not get it to render any documents, I
could not compare its actual usability to okular. Please keep in mind,
however, that it is in a state of development at the moment, so being
broken on any given day is nothing to be overly concerned about.

     A note about DVI files in general: to view them you need to install
some TeTeX files, which on my distribution totals 85 megabytes - a
likely reason why DVI files are not a popular format for documents
despite their competent rendering abilities. When Ligature finds a
hyperlink in a DVI file, it underlined the text in blue to indicate that
you could click on it, which while useful in some circumstances, made
documents with links look quite ugly. okular on the other hand does not
underline links in DVI files, but they still work as expected.

     For those wondering about duplication of efforts, okular and
Ligature use different internal architectures, but many of the library
dependencies depend on are the same (much like how MPlayer and xine have
very different internals, but can still use the same low level libraries
to decode media). This means that while they cannot easily be merged
into one project, any work that trickles down into the lower level
libraries will be beneficial to both projects. Regarding availability,
okular will be available wherever your distribution packages it, and
since most distributions end up splitting packages like kdegraphics into
their constituent apps anyway, Ligature will fall into the same category
for most users. Of course, GNOME users can also use okular or Ligature
as well, if they have the required KDE libraries installed, but of
course they can also use Evince [http://www.gnome.org/projects/evince/]
which shares many of the same backend libraries, but is better
integrated into the GNOME environment.

     That's all for this week folks. Hope this clears up any confusion
about the nature of both okular and Ligature.



More information about the dot-stories mailing list