Dokumente im CHM-Format kennen Sie vor allem von Microsofts Hilfedateien, auch E-Books liegen mitunter in diesem Format vor. Mit KchmViewer betrachten Sie CHM-Dateien unter Linux.
CHM-Dateien sind ein klassisches Beispiel dafür, wie Microsoft versucht, sein eigenes Süppchen zu kochen – und scheitert. Ab 1997 lieferte der Konzern seine Hilfedateien und Programmdokumentationen für Windows 98 und Windows 2000/XP im geschlossenen CHM-Format aus. Die Abkürzung steht für Compiled HTML Help, und es gibt detaillierte Informationen zu diesem Format. Die stammen aber nicht etwa von Microsoft selbst, sondern sie wurden von Open-Source-Entwicklern in akribischer Kleinarbeit und per Reverse Engineering zusammengetragen. Auf einer Webseite veröffentlichten diese ihre Fundstücke im Rahmen einer ausführlichen Dokumentation [1]. Es handelt sich sicher nicht um leichte Kost, wenn Sie sich aber für das Thema Reverse Engineering interessieren, sollten Sie mal einen Blick auf die Seiten werfen.
Aber zurück zum Format selbst. Tatsächlich gibt es neben Microsofts Hilfedokumenten inzwischen auch eine Reihe von E-Books, die es einsetzen. Kein Wunder, denn CHM-Dateien sind im Prinzip wie Bücher aufgebaut: Sie enthalten Kapitel, Bilder, Unterkapitel, meist einen Index und ein Inhaltsverzeichnis. Die Anzeigesoftware zeigt auf der linken Seite das Inhaltsverzeichnis und den Index an (Abbildung 1), über die Sie per Mausklick zu den eigentlichen Textstellen gelangen, welche die Software im rechten Bereich präsentiert. Darüber hinaus finden Sie in den Dokumenten Links, um zwischen den Kapiteln hin und her zu springen.

Abbildung 1: Die grafische Oberfläche des KchmViewer (hier unter OpenSuse 11.1) benutzen Sie bei Bedarf übrigens auch mit Tabs.
Technisch handelt es sich bei CHM-Dateien um Archive, die ein eigenes virtuelles Dateisystem enthalten, das im wesentlichen XML-, HTML- und JavaScript-Dateien sowie Bilder transportiert. Komprimiert werden diese Dateien über den LZX-Algorithmus. Wer selbst eine solche Datei erzeugen will, kann dazu Microsofts kostenloses Werkzeug HTMLHelp Workshop verwenden.
Angucker
Um die CHM-Dateien anzuschauen, verwenden Sie zum Beispiel den KchmViewer [2]. Das K im Namen deutet bereits an, dass es sich um ein KDE-Tool handelt. Tatsächlich wurde die Software in C++ programmiert und verwendet das Qt-Framework. Dank diesem lässt sie sich plattformübergreifend verwenden, Mac- und Windows-Anwender müssen lediglich Qt installieren. Seit Version 5.0 verwendet die Software Qt 4.5, die Entwickler haben die grafische Oberfläche komplett überholt. OpenSuse 11.1/11.2 und Kubuntu 10.04 bringen jedoch noch die älteren Versionen 3.1 bzw. 4.1 mit. In allen drei Distributionen spielen Sie KchmViewer über die Standardpaketquellen auf den Rechner. Es genügt, die Softwareverwaltung aufzurufen, nach kchmviewer zu suchen und das Paket zu installieren. Ein Start-Icon nistet sich unter OpenSuse 11.1 im K-Menü unter Programme / Büroprogramme / Dokumentenansicht ein, unter Kubuntu 10.04 finden Sie es unter Programme / Büroprogramme. Lediglich unter OpenSuse 11.2 müssen Sie den Hilfebetrachter per Hand starten, indem Sie [Alt]+[F2] drücken und kchmviewer eingeben. Für das englische Programm scheint es keine deutsche Anpassung der Oberfläche zu geben.
Nach dem Start fordert KchmViewer Sie auf, über ein Fenster des Dateimanagers ein CHM-Dokument zu finden und zu laden. Gibt es auf dem Rechner kein solches, startet die Anwendung nicht. Andernfalls zeigt sie eine Oberfläche, die an den Windows-Hilfebetrachter erinnert. Im Test haben wir eine CHM-Datei verwendet, die den Inhalt der Webseite SelfHTML [3] enthält.
Der linke Bereich des Hauptfensters von KchmViewer enthält vier Reiter, über die Sie das Inhaltsverzeichnis, den Index, die Lesezeichen und eine Suchfunktion erreichen. Klicken Sie auf ein Kapitel, erscheint rechts der zugehörige Text. Enthält dieser Links im Fließtext, springen Sie darüber zu anderen Stellen im Dokument. Über das Register Index finden Sie über Schlagworte Passagen im Dokument, die das Wort enthalten. Indizes in Büchern verweisen oft auf mehrere Seiten, auf denen ein bestimmter Begriff auftaucht. Auch KchmViewer kommt damit klar, wenn das Dokument solche mehrfachen Indexeinträge anbietet.
Ein besonderes Feature der Software: Sie kennt Tabs. Sie öffnen also verschiedene Kapitel eines Buches parallel nebeneinander und wechseln über Reiter zwischen diesen hin und her. Um Inhalte in einem Tab zu öffnen, klicken Sie mit der rechten Maustaste auf einen Eintrag im Index oder im Inhaltsverzeichnis und wählen Open this link in a new tab (Link in neuem Tab öffnen) oder Open this link in a new background tab (Link in neuem Hintergrund-Tab öffnen). Beim Öffnen im Hintergrund liegt der Fokus weiter auf dem aktuell angezeigten Text.
Navigation und Suche
Die Navigation durch die Dokumente erfolgt alternativ über die blauen Pfeiltasten in der Symbolleiste, über die Sie zum vorherigen oder nächsten Dokument blättern. Über das Symbol mit dem Häuschen gelangen Sie zurück zur Startseite. Die beiden Lupen helfen, die Schrift des Dokuments zu vergrößern und zu verkleinern. Dazu muss Ihr Rechner TrueType-Schriften verwenden, was aber inzwischen auch unter Linux die Regel ist. Bei Bedarf betrachten Sie Texte auch im Vollbildmodus, in den Sie über [F11] gelangen.
Suchen Sie eine bestimmte Textstelle im Dokument, die der Index aber nicht anzeigt, verwenden Sie die integrierte Suchfunktion. Zwar bringen auch die CHM-Dokumente eine Suche mit, die ist aber nicht so leistungsfähig wie die des KchmViewer. Letztere funktioniert unabhängig von einem in die CHM-Datei eingebauten Index, umfasst alle Zeichen inklusive Symbolen und funktioniert auch in anderen Sprachen. Überhaupt unterstützt KchmViewer zahlreiche Zeichensätze, wozu unter anderem Kyrillisch, Japanisch und Arabisch gehören.
Stoßen Sie in einem CHM-Dokument auf wichtige Informationen, die sie vielleicht später benötigen, setzen Sie einfach ein Lesezeichen. Dazu klicken Sie dazu auf das Symbol mit dem Stern (oder drücken [Strg]+[B]) und geben dem Lesezeichen dann einen Namen. Die Lesezeichen erscheinen später im Reiter Bookmarks auf der linken Seite des CHM-Readers. KchmViewer merkt sich dabei auch die aktuelle Position, an der Sie sich befinden, was vor allem bei längeren Texten sinnvoll ist. So suchen Sie später nicht nach der Stelle im Text, an der Sie aufgehört hatten zu lesen. Auch merkt sich das Programm beim Schließen, welches Dokument Sie gerade verwenden und wie groß das Fenster aktuell ist und stellt diesen Zustand nach einem Neustart wieder her.
Code und Druck
Interessieren Sie sich für den Quellcode einer Webseite, bringt KchmViewer auch einen Quellcode-Betrachter mit, den Sie (wie bei Firefox) über [Strg]+[U] aktivieren. Klicken Sie auf das Symbol links neben dem Bookmark-Icon, erreichen Sie denselben Effekt. Auch drucken können Sie die angezeigten CHM-Dokumente. Steht gerade kein Drucker bereit, erstellen Sie aus der CHM-Datei eine PDF- oder PostScript-Datei. Nicht zuletzt extrahieren Sie die Datei auch in ein neues Verzeichnis. KchmViewer entpackt dabei fein säuberlich die eigentlich angezeigten Inhalte (HTML- und JavaScript-Dateien) und die für das CHM-Format angelegten Spezialdateien (Abbildung 2). So könnten Sie z. B. die HTML-Dateien auf Webseiten veröffentlichen oder auf E-Books lesen.

Abbildung 2: Auf Wunsch entpackt KchmViewer die Bestandteile einer CHM-Datei auch und legt sie in einem Verzeichnis ab.
Fazit
Dass die Linux-Distributionen ältere Versionen des CHM-Viewers verwenden, wundert nicht: Die Software scheint stabil zu laufen und bringt mit den Tabs, einer eigenen Suchfunktion und den Lesezeichen alles mit, was das Leserherz begehrt.
Glossar
-
Reverse Engineering
-
Dabei analysieren Entwickler die Funktionen eines Programms, dessen Quellcode nicht einsehbar ist.
-
LZX
-
Verlustfreie Kompression, die auf dem Lempel-Ziv-Algorithmus von 1977 basiert.
Infos
[1] Spezifikation von CHM: http://www.nongnu.org/chmspec/latest/
[2] Webseite von KchmViewer: http://www.kchmviewer.net
[3] SelfHTML als CHM-Datei: http://aktuell.de.selfhtml.org/extras/download.shtml#chm

